【https://golang.org/ref/spec#Types 】--->这是关于type的描述。里面有两句:
Types may be named or unnamed. Named types are specified by a (possibly qualified) type name; unnamed types are specified using a type literal, which composes a new type from existing types.
有点不大理解,因为下面没有举出例子。所以还是不懂什么叫named type,什么叫unnamed type。
本来想跳过,以后再慢慢接触,可是另一个地方又出现这个named和 unnamed type。
见:【https://golang.org/ref/spec#Selectors 】:Selectors的描述里面出现了这个,所以还是得先弄明白,named 和 unnamed type。
大神解释一下。
看了半天,终于看出来了。下面有具体的定义(原来TypeLit就是 type literal的缩写,郁闷没看出来这一点):
TypeLit = ArrayType | StructType | PointerType | FunctionType | InterfaceType |SliceType | MapType | ChannelType .
使用type literal(也就是TypeLit)定义出来的组合型type就是unnamed type。终于能继续看下去了。
#1
更多评论
并不对,上面的还是有问题,最新得出的结论是:
有名字的type就是named type,没有名字的就是unnamed type。
1. 比如说[10]int这个就是unnamed type。
2. 比如说 type ten_int [10]int, 这里的ten_int就是named type。
2. 至于ten_int 和[10]int 有什么区别或者联系,还在继续看。
#2