Golang自定义类型与类型别名

type myInt int32type myInt = int32,概念并不相同

  1. 自定义类型:type myInt int32

    通过这种方式定义的类型是一个全新的类型 ,这个新类型与int32有相同的底层结构,但是却与int32类型不兼容。

    go 复制代码
    type myInt int32
    go 复制代码
    var a int32 = 5
    var b myInt = a  // 这里会产生编译错误

    尽管myInt的底层类型是int32,但它们在类型系统中是不同的。

  2. 类型别名:type myInt = int32

    类型别名则是给现有类型起一个新的名字,新的名字与原始类型在类型系统中是完全相同的。

    go 复制代码
    type myInt = int32
    go 复制代码
    var a int32 = 5
    var b myInt = a  // 这里不会产生编译错误

    这里myIntint32的别名,所以不会产生任何编译错误。

  3. 总结

    • 自定义类型会创建一个全新的类型,与原始类型在类型系统中是不兼容的。

    • 类型别名则只是给现有类型起一个新名字,与原始类型在类型系统中完全相同。

    • 自定义类型可用于封装或抽象,而类型别名则可以用来确保向后兼容或简化类型名称。

    通过了解这些区别,可以更灵活地使用Go语言的类型系统来满足各种编程需求。

相关推荐
苹果酱056713 分钟前
一文读懂SpringCLoud
java·开发语言·spring boot·后端·中间件
Eoneanyna14 分钟前
QT设置git仓库
开发语言·git·qt
小鹿( ﹡ˆoˆ﹡ )19 分钟前
Python中的树与图:构建复杂数据结构的艺术
开发语言·python
想变成自大狂25 分钟前
C++中的异构容器
开发语言·c++
qq_1728055926 分钟前
GO GIN 推荐的库
开发语言·golang·gin
friklogff32 分钟前
【C#生态园】构建你的C#操作系统:框架选择与实践
服务器·开发语言·c#
掐指一算乀缺钱33 分钟前
SpringBoot 数据库表结构文档生成
java·数据库·spring boot·后端·spring
就这个java爽!44 分钟前
JAVA网络编程【基于TCP和UDP协议】超详细!!!
java·开发语言·网络·tcp/ip·udp·eclipse·idea
环能jvav大师1 小时前
基于R语言的统计分析基础:使用dplyr包进行数据操作
大数据·开发语言·数据分析·r语言
懒洋洋大魔王1 小时前
7.Java高级编程 多线程
java·开发语言·jvm