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
的别名,所以不会产生任何编译错误。 -
总结
-
自定义类型会创建一个全新的类型,与原始类型在类型系统中是不兼容的。
-
类型别名则只是给现有类型起一个新名字,与原始类型在类型系统中完全相同。
-
自定义类型可用于封装或抽象,而类型别名则可以用来确保向后兼容或简化类型名称。文章来源:https://www.toymoban.com/news/detail-649667.html
通过了解这些区别,可以更灵活地使用Go语言的类型系统来满足各种编程需求。文章来源地址https://www.toymoban.com/news/detail-649667.html
-
到了这里,关于Golang自定义类型与类型别名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!