【Golang系列】-类型定义和类型别名
2022-03-16
类型定义和类型别名
类型定义
type NewType Type
示例:
package main
import (
"fmt"
)
func main() {
type MyInt int //类型定义
var i MyInt //i 为MyInt类型
i = 100
fmt.Printf("i:%v i:%T\n", i, i)
}
结果:
[Running] go run "/Users/lihui/Desktop/gocode/src/chapter07/demo05.go"
i:100 i:main.MyInt
[Done] exited with code=0 in 0.522 seconds
go语言类型别名
type NewType = Type
示例:
package main
import (
"fmt"
)
func main() {
type MyInt = int //类型定义
var i MyInt //i 为MyInt类型
i = 100
fmt.Printf("i:%v i:%T\n", i, i)
}
结果:
[Running] go run "/Users/lihui/Desktop/gocode/src/chapter07/demo05.go"
i:100 i:int
[Done] exited with code=0 in 0.862 seconds
类型定义和类型别名的区别
- 类型定义相当于定义了一个全新的类型,与之前的类型不同;但是类型别名并没有定义一个新的类型,而是使用一个别名替换之前的类型
- 类型别名只会在代码中存在,在编译完成之后并不会存在该别名
- 因为类型别名和原来的类型是一致的,所以原来类型所拥有的方法,类型别名也可以调用,但是如果是重新定义的一个类型 ,那么不可以调用之前的任何方法