Golang - type关键字(类型别名)

区分类型别名与类型定义

定义类型别名的写法为:

type TypeAlias = Type

类型别名规定:TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类型,就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。
类型别名与类型定义表面上看只有一个等号的差异,那么它们之间实际的区别有哪些呢?下面通过一段代码来理解。

package main
import (
    "fmt"
)
// 将NewInt定义为int类型
type NewInt int
// 将int取一个别名叫IntAlias type IntAlias = int func main() { // 将a1声明为NewInt类型 var a1 NewInt // 查看a的类型名 fmt.Printf("a1 type: %T\n", a) // 将a2声明为IntAlias类型 var a2 IntAlias // 查看a2的类型名 fmt.Printf("a2 type: %T\n", a2) }

代码运行结果:

a1 type: main.NewInt
a2 type: int
posted @ 2022-09-16 12:56  李若盛开  阅读(206)  评论(0)    收藏  举报