Go 语言 自定义类型 和 类型别名的区别

定义方式

// 自定义类型
type MyInt int
// 类型别名
type IntAlias = int

区别

    var i MyInt = 0
    var j IntAlias = 0
    fmt.Printf("i MyInt %T %v\n", i, i) // 输出结果: i MyInt main.MyInt 0
    fmt.Printf("j IntAlias %T %v\n", j, j) // 输出结果: j IntAlias int 0

系统两个类型别名 rune byte

type rune = int32
type byte = uint8

类型别名编译时会被转成对应类型

类型别名可以同相同类型进行计算,自定义类型则不能

var j IntAlias = 0
var myJ int = 3
fmt.Println(j + myJ)

自定义类型可以为类型添加方法

func (m MyInt) sum(i int) {
    fmt.Println(int(m) + i)
}
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!