此问题在此处已有答案:
Assignment between custom slice type and the underlying type(1个答案)
Why can I assign a value of different type to a variable?(1个答案)
2天前关闭。
ak和am是两种不同的类型,为什么可以赋值
package main
import (
"fmt"
)
type ar [3]int
func main() {
var ak ar
am := [3]int{4, 5, 6}
ak = am// different type
fmt.Printf("ak %T,am,%T", ak, am)
}
为什么两种不同的类型可以相互赋值
1条答案
按热度按时间kg7wmglp1#
因为两个类型都有 * 相同 * 的底层类型,而
am
的类型是未命名,并且这个事实满足规范的Assignability部分中列出的条件之一,具体来说就是: