下面这段代码能否通过编译?如果通过,输出什么?

package main

import "fmt"

type MyInt1 int
type MyInt2 = int

func main() {
    var i int =0
    var i1 MyInt1 = i 
    var i2 MyInt2 = i
    fmt.Println(i1,i2)
}
答: 不能 参考解析:这道题考的是类型别名与类型定义的区别。 类型别名type MyInt2 = int 类型定义type MyInt1 int Go 赋值 = 左右的类型需要一致。 MyInt1 是基于int定义的新类型,因此不能直接赋值。如果需要赋值,需要类型转换var i1 MyInt1 = MyInt1(i)