Go 的 interface{} 类型有哪些使用限制?

提问者:帅平 问题分类:面试刷题
Go 的 interface{} 类型有哪些使用限制?
1 个回答
习惯所有的虚假
习惯所有的虚假
interface{} 是 Go 的空接口(可以存储任何类型),但其使用存在以下限制:
类型信息丢失:存储到 interface{} 后,原始类型需通过类型断言(typeSwitch 或 v.(T))恢复,否则无法调用具体方法。
性能开销:每次类型断言或反射操作会增加运行时开销。
无法直接比较:两个 interface{} 变量不能直接比较(如 ==),除非它们的底层类型和值均相同且为基本类型。
示例代码如下:
var i interface{} = "Hello"  
s := i.(string) // 类型断言恢复类型
发布于:1周前 (04-22) IP属地:
我来回答