Golang中容易出现的一个赋值bug
Golang中,:=同时进行了变量声明和赋值。 当:=左边有多个变量时,编译器只检查左边至少有一个新变量。 如果其中有的变量已经声明,则只做赋值操作。 比如: _ := 1 // error. Nothing New declared a, _ := foo() // ok. Declare a a, b := foo() // ok. Declare b, assign a _, b := foo() // error. Nothing New declared 设想下面这种状况: func main() { var err error if true { data, err := strconv.Atoi("x") if err == nil { fmt.Println("Atoi su...阅读全文