type myInt int32 与 type myInt = int32,概念并不相同
-
自定义类型:type myInt int32
通过这种方式定义的类型是一个全新的类型,这个新类型与int32有相同的底层结构,但是却与int32类型不兼容。
type myInt int32
var a int32 = 5 var b myInt = a // 这里会产生编译错误
尽管myInt的底层类型是int32,但它们在类型系统中是不同的。
-
类型别名:type myInt = int32
类型别名则是给现有类型起一个新的名字,新的名字与原始类型在类型系统中是完全相同的。
type myInt = int32
var a int32 = 5 var b myInt = a // 这里不会产生编译错误
这里myInt是int32的别名,所以不会产生任何编译错误。
-
总结
-
自定义类型会创建一个全新的类型,与原始类型在类型系统中是不兼容的。
-
类型别名则只是给现有类型起一个新名字,与原始类型在类型系统中完全相同。
-
自定义类型可用于封装或抽象,而类型别名则可以用来确保向后兼容或简化类型名称。
通过了解这些区别,可以更灵活地使用Go语言的类型系统来满足各种编程需求。
-
到此这篇关于Golang自定义类型与类型别名的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文地址:https://blog.csdn.net/qq_35760825/article/details/132282965