为何用interface{}
表示任意类型?
为何不用interface表示任意类型?
interface 定义是 interface { methods } ,methods 是类型需要实现的方法集。
如果对方法集没有任何要求,就可以匹配任何类型,methods 为空,就变成了 interface{} 。这样,任意类型的 interface{} 的定义于其它所有的 interface 是一致的。
如果另外定义 interface 表示任意类型,则需要对语法进行额外的修改。
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1.1k 阅读
2 回答884 阅读
3 回答700 阅读
1k 阅读
1 回答798 阅读
interface{} 里面没有任何函数声明。
所以,所有的结构体,所有的Type,包括Primitive Type都隐式地实现这个interface {}。
这个interface{}可以作为任何结构体,Type,Primitive Type的父类(从OOP的角度来看)。
所以interface{}可以当做java的java.lang.Object,
C的void
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。