关于:=请教下

zhjzjnb · · 838 次点击
```golang package main import "fmt" func main() { // 首次使用使用:=声明并赋值 a, b := 1, 1 // 再次使用时用=来赋值,之前已经声明过了 a, b = 2, 2 // 参数中仍然有值未声明,可以继续使用:=来赋值声明 // 其实只是声明c,然后给a,c赋值,a并未重复声明 // 你可以通过下面的语句来进行实验 // a, c := "1", 2 //报错误 cannot use "1" (type string) as type int in assignment a, c := 1, 2 // 这里还有个坑 // 函数体内,使用:=来赋值时,虽然其中有一个参数已经赋值,这两个变量会变成局部变量 // 不会影响外面的参数值, if true { a, d := "4", "5" fmt.Println(a, d) // 4 5 } fmt.Println(a) // 1 // 如果希望使用外部变量,需要先声明d的类型,然后再赋值 if true { var d string a, d = 4, "5" fmt.Println(d) // 5 } fmt.Println(a, b, c) // 4 2 2 } ```
#3
更多评论
同学,你是来搞笑的吗。`:=`声明并赋值,你上面已经声明了,不需要再声明类型了,所以用`=`就好。
#1
而且提示意图很明显 “no new variables on left side of :=” “:=的左边没有新的变量需要赋值” go的错误提示很全面 很精确 很优雅 读懂报错很重要 ~
#2