go语言如何取struct的全包名

发布时间:2026/8/24 15:34:15

go语言如何取struct的全包名
在 Go 中通过reflect包可以获取 struct 的完整限定名Fully Qualified Name即完整导入路径.类型名。核心方法gopackage main import ( fmt reflect ) // 假设这是你的 struct type User struct { Name string } func main() { u : User{} // 1. 获取 reflect.Type t : reflect.TypeOf(u) // 2. 完整导入路径如 main 或 github.com/user/project/models pkgPath : t.PkgPath() // 3. 类型名如 User typeName : t.Name() // 4. 拼接成全限定名 fullName : pkgPath . typeName fmt.Println(fullName) // 输出: main.User }处理指针的情况如果传入的是指针需要先解引用gofunc fullTypeName(v any) string { t : reflect.TypeOf(v) // 如果是指针取底层元素类型 if t.Kind() reflect.Ptr { t t.Elem() } // 如果不是命名类型如内置类型、匿名 structPkgPath 为空 if t.PkgPath() { return t.String() } return t.PkgPath() . t.Name() } type User struct{} var u *User fmt.Println(fullTypeName(u)) // main.User fmt.Println(fullTypeName(42)) // int内置类型无 PkgPath实际项目中的封装gopackage main import ( fmt reflect ) // FullTypeName 返回类型的全限定名pkgpath.TypeName // 支持指针、切片、map 等会穿透到最底层的命名类型 func FullTypeName(v any) string { t : reflect.TypeOf(v) return typeFullName(t) } func typeFullName(t reflect.Type) string { switch t.Kind() { case reflect.Ptr, reflect.Slice, reflect.Array, reflect.Chan, reflect.Map: // 递归取元素类型 return typeFullName(t.Elem()) default: if t.PkgPath() { return t.String() // 内置类型 } return t.PkgPath() . t.Name() } } // 测试 type User struct{} type Status int func main() { var u User var s Status var p *User var users []User fmt.Println(FullTypeName(u)) // main.User fmt.Println(FullTypeName(s)) // main.Status fmt.Println(FullTypeName(p)) // main.User fmt.Println(FullTypeName(users)) // main.User取元素类型 fmt.Println(FullTypeName(42)) // int fmt.Println(FullTypeName(hello)) // string }关键 API 速查表格方法返回值示例说明reflect.TypeOf(v).Name()User类型名不含包reflect.TypeOf(v).PkgPath()main或github.com/xxx/yyy完整导入路径reflect.TypeOf(v).String()main.User包名.类型名注意包名 ≠ 导入路径⚠️String()返回的是包名package name不是导入路径。例如导入路径是github.com/google/uuid包名可能是uuid此时String()返回uuid.UUID而PkgPath()返回github.com/google/uuid。一句话总结got : reflect.TypeOf(v) if t.Kind() reflect.Ptr { t t.Elem() } fullName : t.PkgPath() . t.Name() // 完整导入路径 类型名

相关新闻

6.24华为OD机试真题 新系统 - 云服务安全策略最优选择 (JavaPyCC++JsGo)

6.24华为OD机试真题 新系统 - 云服务安全策略最优选择 (JavaPyCC++JsGo)

2026/8/24 15:24:14

云服务安全策略最优选择 2026 华为OD机试真题 6月24日华为OD上机新系统考试真题 100 分题型 点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 双机位C卷 真题题库目录|全覆盖题库 逐点算法考点详解 题目描述 在云服务中,有…

阿里Qwen-UI-Agent撬动算力生意

阿里Qwen-UI-Agent撬动算力生意

2026/8/24 15:24:14

很多人以为,阿里这次组织架构调整,把云智能集团和平头哥合并,是为了“造芯”。但截至本文成稿,阿里官方并未宣布平头哥并入云智能集团——市场流传的“合并”更可能是一种战略协同信号。这次调整真正要讲的,是一张“入…

Ubuntu 网络不可达问题排查与解决指南

Ubuntu 网络不可达问题排查与解决指南

2026/8/24 15:24:14

1. 问题现象 在 Ubuntu 系统中,你可能会遇到“网络不可达”的错误,具体表现为: 无法通过浏览器访问任何网站。终端执行 ping 或 curl 命令时,返回“Network is unreachable”错误。系统托盘网络图标显示断开连接或受限连接。无法…

Path of Building PoE2 完整指南:5 分钟规划你的流放之路 2 构建

Path of Building PoE2 完整指南:5 分钟规划你的流放之路 2 构建

2026/8/24 16:44:18

Path of Building PoE2 完整指南:5 分钟规划你的流放之路 2 构建 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 Path of Building PoE2(简称 PoB2)是一款面向《流放之…

联想M920x黑苹果实战指南:从 BIOS 设置到 4K 硬解一次配通

联想M920x黑苹果实战指南:从 BIOS 设置到 4K 硬解一次配通

2026/8/24 16:44:18

联想M920x黑苹果实战指南:从 BIOS 设置到 4K 硬解一次配通 【免费下载链接】M920x-Hackintosh-EFI Hackintosh Opencore EFIs for M920x 项目地址: https://gitcode.com/gh_mirrors/m9/M920x-Hackintosh-EFI 联想M920x黑苹果是近两年折腾成本最低的小主机之一…

算法基础:质数与约数的数学原理与高效实现

算法基础:质数与约数的数学原理与高效实现

2026/8/24 16:44:18

1. 从“口袋里的质数”说起:为什么算法离不开数学 最近在网上看到一个挺有意思的题目,大意是:小A有一个“质数口袋”,从2开始,依次判断各个自然数,如果是质数就装进口袋。这个描述虽然简单,却精…

微信聊天记录导出 + 年度报告:WeChatMsg 免费保姆级指南

微信聊天记录导出 + 年度报告:WeChatMsg 免费保姆级指南

2026/8/24 16:44:18

微信聊天记录导出 年度报告:WeChatMsg 免费保姆级指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…

【单片机毕设案例分享】单片机控制的优先级病床呼叫语音提示系统实现 基于无线射频通信的医护双向呼叫设备开发(020204)

【单片机毕设案例分享】单片机控制的优先级病床呼叫语音提示系统实现 基于无线射频通信的医护双向呼叫设备开发(020204)

2026/8/24 16:44:18

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

从安装到培养规划:Snap.Hutao 胡桃工具箱完整使用指南

从安装到培养规划:Snap.Hutao 胡桃工具箱完整使用指南

2026/8/24 16:34:17

从安装到培养规划:Snap.Hutao 胡桃工具箱完整使用指南 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hut…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/23 0:02:09

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/23 0:02:09

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/23 0:02:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

2026/8/24 0:03:28

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

2026/8/24 0:03:28

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

2026/8/24 0:03:28

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…