惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Last Week in AI
Last Week in AI
月光博客
月光博客
D
DataBreaches.Net
WordPress大学
WordPress大学
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
MyScale Blog
MyScale Blog
C
Check Point Blog
F
Fortinet All Blogs
B
Blog
小众软件
小众软件
Vercel News
Vercel News
罗磊的独立博客
有赞技术团队
有赞技术团队

博客园 - 悉野

go编译期接口断言 / 编译期接口检查(compile-time interface assertion / compile-time interface check) ssh连结vmware中ubuntu的共享文件夹 spring加载冲突问题 spring一个错误修正 抓安卓日记到文件 注册表删除桌面顽固图标 github买的账号无法拉取代码的解决方法 apk常用命令 java服务器异常处理 ES6 学习难度分层 promise原理 材质, 纹理, shader之间的关系 TCP与UDP区别 javascript中=>与function的区别 javascript中函数解析过程 cocos使用fgui 几种服务注册与发现的区别 mybatis测试 向量点乘与叉乘 unity画布3种渲染模式 go学习笔记10(HTTP) go学习笔记9(TCP) go学习笔记8(反射) c++简单的线程池 operator new 是 C++ 动态内存分配的核心函数,负责分配原始内存,不调用构造函数 C++的定位放置new(Placement new) go学习笔记7(泛型,文件读写,测试) go学习笔记6(协程与channel,select使用,线程安全,异常处理) go学习笔记5(函数,结构体,自定义类型和类别名,接口) go学习笔记4(数组与切片,map,if,switch,for循环)
Go 的类型断言
悉野 · 2026-08-11 · via 博客园 - 悉野

Go 的类型断言(Type Assertion)用于在接口类型(interface)上获取其底层的具体类型或值

格式:

v := x.(T)

x:接口类型变量(interface{} 或具体接口)
T:断言的目标类型
v:如果成功,就是 x 的动态值,类型为 T

不安全的类型断言:

var i interface{} = 123
s := i.(string) // panic: interface conversion

安全的类型断言:

v, ok := x.(T)

ok == true:断言成功
ok == false:断言失败,不会 panic,v 为零值

var i interface{} = 123

s, ok := i.(string)
if !ok {
fmt.Println("not a string")
}

 常见用法:

从 interface{} 中取值
判断接口是否实现额外方法
反射前的类型判断
HTTP / JSON / 中间件中处理任意值

type Client struct {
User interface{} //用户对象
}

func GetUser(c *server.Client) *model.User {
if c.User == nil {
return nil
}
return c.User.(*model.User)
}

c.User.(*model.User)其实返回两个值