关于Go的selector的疑惑

18328048335 · · 1315 次点击
我个人理解,仅供参考: 1. type B A 定义的是一个新类型,但是 B 和 A 的底层类型是一样的(这部分参考圣经),即它们都是拥有 r 这个成员的结构体,因此 b.r 和 c.r 合法 2. b 和 c 无法调用 FuncA() 是因为它们都是新类型并且没有绑定该方法 3. 当添加以下代码 `b = *c` ,ide 提示 **type A** 类型无法赋值给 **type B**,所以此时 `*c` 可以调用方法,至于为什么 *c 是 type A 类型,这点我也不太清楚。
#1
更多评论
底层类型和类型相同是两码事,1.18版本之后 带上~符号后,在接口中,实例化的时候,才能出现“底层类型相同所以类型相同“的情况。
#2