基础问题:关于【named type】 和 【unnamed type】

apagebook · 2016-03-26 09:31:52 · 1980 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-03-26 09:31:52 的主题,其中的信息可能已经有所发展或是发生改变。

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。 大神解释一下。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1980 次点击  
加入收藏 微博
3 回复  |  直到 2016-03-27 14:09:23
apagebook
apagebook · #1 · 9年之前

看了半天,终于看出来了。下面有具体的定义(原来TypeLit就是 type literal的缩写,郁闷没看出来这一点): TypeLit = ArrayType | StructType | PointerType | FunctionType | InterfaceType |SliceType | MapType | ChannelType . 使用type literal(也就是TypeLit)定义出来的组合型type就是unnamed type。终于能继续看下去了。

apagebook
apagebook · #2 · 9年之前
apagebookapagebook #1 回复

看了半天,终于看出来了。下面有具体的定义(原来TypeLit就是 type literal的缩写,郁闷没看出来这一点): TypeLit = ArrayType | StructType | PointerType | FunctionType | InterfaceType |SliceType | MapType | ChannelType . 使用type literal(也就是TypeLit)定义出来的组合型type就是unnamed type。终于能继续看下去了。

并不对,上面的还是有问题,最新得出的结论是: 有名字的type就是named type,没有名字的就是unnamed type。

  1. 比如说[10]int这个就是unnamed type。
  2. 比如说 type ten_int [10]int, 这里的ten_int就是named type。
  3. 至于ten_int 和[10]int 有什么区别或者联系,还在继续看。
blov
blov · #3 · 9年之前

:thumbsup:

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传