go 语言中的别名类型
2024-01-07 17:17:37
什么是别名类型
我们可以用关键字 type 声明自定义的各种类型,类似:
type People struct {
name string
age int
}
当然了,这些类型必须在 Go 语言基本类型和高级类型的范畴之内。
在它们当中,有一种被叫做 ”别名类型” 的类型。我们可以像下面这样声明它:
type stringAlias = string
这条声明语句表示,stringAlias 是 string 类型的别名类型。顾名思义,别名类型与其源类型的区别恐怕只是在名称上,它们是完全相同的。我们完全可以使用以下代码测试:
func func10() {
var s1 stringAlias = "2"
v, ok := interface{}(s1).(string)
fmt.Println(ok)
fmt.Println(v)
fmt.Println(reflect.TypeOf(s1))
}
output:
true
2
string
从代码结果来看,stringAlias 以及 string 实际上就是同一种类型。
延伸
如果我们这么定义呢?
type stringAlias1 string
还是使用上面的例子进行测试:
func func11() {
var s1 stringAlias1 = "2"
v, ok := interface{}(s1).(string)
fmt.Println(ok)
fmt.Println(v)
fmt.Println(reflect.TypeOf(s1))
}
output:
false
main.stringAlias1
我们可以从输出看出来,这里的 stringAlias1 和 string 是完全两种类型。这种我们叫类型的重定义。
文章来源:https://blog.csdn.net/ldxxxxll/article/details/135424773
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!