请考虑以下代码段:
cannot use returnX(f) (type int) as type Foo2 in assignment
在这里,我无法编译该程序int
这里,Foo2
和package main
import "fmt"
type Foo struct {
a string
b string
}
func returnX(s Foo) []int {
return []int{1}
}
type Foo2 []int
func main() {
f := Foo{"a", "b"}
var b Foo2
b = returnX(f)
fmt.Println(b)
}
之间的隐式转换失败了
但是,这可行:
[]int
在这里,我可以将Foo2
隐式转换为{{1}}并成功进行分配。
为什么某些类型而不是其他类型可以隐式赋值?