DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 空接口 interface{} 与 any 有什么区别?何时使用及类型安全风险

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

没有本质区别:any 是 Go 1.18 引入的别名,等价于 interface{}(type any = interface{}),仅写法更简洁、语义更清晰。空接口可容纳任何类型(所有类型都实现了零方法)。使用场景:不确定类型参数(fmt.Println、JSON 反序列化到 map[string]interface{})。风险:空接口破坏类型安全,取出时必须类型断言(v.(string)),断言错误会 panic(用 v, ok := x.(string) 安全断言);频繁使用会增加运行时开销。

下载推广海报

圈内讨论推广海报

《Go 空接口 interface{} 与 any 有什么区别?何时使用及类型安全风险》完整推广海报
REPLIES

回复

0 条回复
暂无回复。