我正在阅读this doc并看到以下片段:
:=语法是声明和初始化变量的简写,例如: for var f string =“short”在这种情况下。
f := "short"
fmt.Println(f)
关键是:它只适用于字符串吗?或者它是否足以了解它应该存储哪种数据类型?
加上:与var f = "short"
不一样吗?
答案 0 :(得分:5)
当然它会推断出右侧表达式返回的明显类型。
specification给出了这些例子:
i, j := 0, 10
f := func() int { return 7 }
ch := make(chan int)
r, w := os.Pipe(fd) // os.Pipe() returns two values
_, y, _ := coord(p) // coord() returns three values; only interested in y coordinate
请注意,它不是动态的:一切都在编译时发生,右侧部分表达式给出了类型。