在阅读 go 规范“可分配性”部分时,我尝试执行几个示例以更好地理解该主题,现在我无法理解我在代码中做错了什么。
根据规范,值x可分配给类型变量的一种T情况如下:
x 的类型 V 和 T 具有相同的基础类型,并且 V 或 T 中的至少一个不是定义的类型。
定义的类型规范指出
类型定义创建一个新的、不同的类型,它具有与给定类型相同的基础类型和操作,并将标识符绑定到它。
但是当我尝试运行以下代码时,构建失败:
func main() {
type Defined int32
var d Defined
var i int32
d = i
}
输出是:
cannot use i (type int32) as type Defined in assignment
同时,使用复合文字的类似示例也可以正常工作:
func main() {
type MyMap map[string]int
var x MyMap
var y map[string]int
x = y
}
撒科打诨
牧羊人nacy
相关分类