标题
[golang/坑] golang 类型别名在不同版本中的实现
clq
浏览(308) +
2023-12-14 16:45:27 发表
编辑
关键字:
[golang/坑] golang 类型别名在不同版本中的实现
这个应该不算坑,不过老版本中会有很多要改写代码的问题。用新版本语法就可以全兼容。
简单来说,在现在的版本中推荐用别名语法,其实就是给老语法间加了一个“=”号。
这两种语法实际产生的效果还是很大的,参考以下文章。
--------------------------------------------------------
https://zhuanlan.zhihu.com/p/659762664
“1.3 类型定义和类型别名的区别
类型别名与类型定义表面上看只有一个等号的差异,我们通过下面的这段代码来理解它们之间的区别”
--------------------------------------------------------
https://www.php.cn/faq/499959.html
“
类型别名是 Go 1.9 版本添加的新功能,主要用于解决代码升级、迁移中存在的类型兼容性问题。在 C/C++ 语言中,代码重构升级可以使用宏快速定义一段新的代码,Go语言中没有选择加入宏,而是解决了重构中最麻烦的类型名变更问题。
在 Go 1.9 版本之前定义内建类型的代码是这样写的:
type byte uint8
type rune int32
而在 Go 1.9 版本之后变为:
type byte = uint8
type rune = int32
这个修改就是配合类型别名而进行的修改。
区分类型别名与类型定义
定义类型别名的写法为:
type TypeAlias = Type
类型别名规定:TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类型,就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。
类型别名与类型定义表面上看只有一个等号的差异,那么它们之间实际的区别有哪些呢?下面通过一段代码来理解。
”
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.