0


go 语言中的别名类型

什么是别名类型

我们可以用关键字 type 声明自定义的各种类型,类似:

type People struct{
    name string
    age  int}

当然了,这些类型必须在 Go 语言基本类型和高级类型的范畴之内。

在它们当中,有一种被叫做 ”别名类型” 的类型。我们可以像下面这样声明它:

type stringAlias =string

这条声明语句表示,stringAlias 是 string 类型的别名类型。顾名思义,别名类型与其源类型的区别恐怕只是在名称上,它们是完全相同的。我们完全可以使用以下代码测试:

funcfunc10(){var s1 stringAlias ="2"
    v, ok :=interface{}(s1).(string)
    fmt.Println(ok)
    fmt.Println(v)
    fmt.Println(reflect.TypeOf(s1))}

output:

true2string

从代码结果来看,stringAlias 以及 string 实际上就是同一种类型。

延伸

如果我们这么定义呢?

type stringAlias1 string

还是使用上面的例子进行测试:

funcfunc11(){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 是完全两种类型。这种我们叫类型的重定义。

标签: golang java javascript

本文转载自: https://blog.csdn.net/ldxxxxll/article/details/135424773
版权归原作者 ldxxxxll 所有, 如有侵权,请联系我们删除。

“go 语言中的别名类型”的评论:

还没有评论