惊了!原来Go语言也有隐式转型
本文永久链接 – https://tonybai.com/2021/12/02/go-has-implicit-type-convertion 我的极客时间专栏《Go语言第一课》上线后收到了很多学员的反馈,大家提出了很多显然是经过认真思考的高水平问题。有些时候我也会被这些问题所“难倒”,比如昨天我在后台看到的这个问题。 我把这个问题整理为下面代码文本,方便大家copy和重现问题: package main type MyInt int type MyMap map[string]int func main() { var x MyInt var y int x = y // 会报错: cannot use y (type int) as type MyInt in assignment _ = x var m1 MyMap var m2 map[string]int m1 = m2 // 不会报错 m2 = m1 // 不会报错 } 结合上面代码,我将这位学员的问题重新描述一下:MyInt与int是不同的两个类型,MyMap与map[string]int也是不同的两个类型,为何将int型变量赋值给MyInt型变量时需要做显式转型,而将map[string]int变量赋值给MyMap型变量就不需要显式转型呢? ...