【发布时间】:2019-12-28 00:54:08
【问题描述】:
在阅读 go 规范“可分配性”部分时,我尝试执行几个示例以更好地理解该主题,但现在我无法理解我在代码中做错了什么。
根据specification,
值x 可分配给T 类型的变量的一种情况如下:
x 的类型 V 和 T 具有相同的底层类型,并且 V 或 T 中至少有一个不是定义的类型。
定义类型specification 声明
类型定义创建一个新的、不同的类型,它具有与给定类型相同的基础类型和操作,并将标识符绑定到它。
但是当我尝试运行以下代码时,构建失败:
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
}
【问题讨论】:
标签: go language-specifications