Golang 别名类型
极客时间《Go 语言核心 36 讲》学习笔记 05,图片来自网络
06 | 程序实体的那些事儿 (下)
这一篇是在讲类型转换么?
类型断言表达式 x.(T),这里的 x 必须是接口类型的,这里我稍微有一点疑惑。
空接口 interface{},带包不包含任何方法定义的、空的接口类型。任何类型都是它的实现类型,interface{}(x)
空花括号 {},可以代表空代码块,或者是不包含任何内容的数据结构
类型字面量,这个中文看上去有点别扭,不知道英文是什么?
类型转换表达式 T(x)
敲了一遍有关类型转换的 demo13 的代码,顺便复习了一下 Unicode 编码
关于别名类型和潜在类型,其实只要看一下 demo13 的代码应该就可以明白了。
对于思考题,感觉有点无从下手。
类型转换规则中我觉的比较有意思的是,凡是没有办法转换的,一般在静态检查的时候,IDE 就会给出提示。
别名类型,主要的好处应该是可以增加代码的可读性。
老师在回复里面提到的,别名类型和类型在定义都是为了“隔离变化”,一语中的。
关于 Type Aliases,在 Proposal 的 Abstract 里面说的很清楚:
enable gradual code repair during large-scale refactorings... may also be useful allowing large packages to be split into multiple implementation packages ... and for experimenting with extended version of existing package
Proposal 没有完全看懂,与这篇专栏文章一样,估计以后还需要多看几遍,才能“其义自见”
看了一篇文章讲 alias 的优点,主要是 Refactoring、Readability 和 Runtime
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/b33124ae4f48ad1dca28b4e88】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论