各位大佬,有一个问题一直没想明白,
golang中的 interface 是一组抽象方法的集合.那为什么 空interface(interface{})能接收 任意类型的变量.
既然是抽象方法的集合,为什么 用变量实现了
楼主,你只要把空白无类型的interface当成任意类型的指针就行了.如果你学过C语言的话 那么就当它是void *,
至于一组抽象方法的集合, 这个首先这里不是什么抽象方法,而是一组接口方法的定义, 你实现了这个接口所有的方法就相当于实现了这个接口, 而这个接口本身也不再是无类型的interface{}, 而是有一个有类型的接口.
Go没有抽象这种东西,不要用OOP的概念去理解Go语言的设计, 这样你会晕头转向的
#2
更多评论
可以这么理解:
你一个东西,有某个 interface 里的所有方法,就表示实现了这个 interface,,,
反过来,如果一个 interface 里面什么方法都没有,,,那相当于所有东西都实现了这个 interface
#3