每种 type T 都有一个 underlying type :
- 如果 T 是以下几种 ->
【 boolean(布尔类型) | numeric(数字类型) | string(字符串) | type literal(type 字面量: unamed type) 】
那么 T 的 underlying type 就是 T 本身。
- 除此之外,T 的 underlying type 跟 T 在声明时引用的 type 相同。
几个例子:
type T1 string
type T2 T1
type T3 []T1
type T4 T3
解释:
1. string 的 underlying type 就是 string 。
2. T1 跟 string 的 underlying type 相同,那么也就是 string 。
3. []T1 属于 type literal , 所以 []T1 的 underlying type 就是 本身: []T1 。
4. T3 跟 []T1 的 underlying type 相同, 那么也就是 []T1 。
5. T4 跟 T3 的 underlying type 相同, 那么也就是 []T1 。
有疑问加站长微信联系(非本文作者)