登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [golang/坑] golang 类型别名在不同版本中的实现     [回主站]     [分站链接]
标题
[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 是同一个类型,就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。

类型别名与类型定义表面上看只有一个等号的差异,那么它们之间实际的区别有哪些呢?下面通过一段代码来理解。




总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1