IF/ELSE 范围内的多个临时变量

  • 本文关键字:变量 ELSE 范围内 IF go
  • 更新时间 :
  • 英文 :


我刚刚注意到我们可以声明一个阴影变量,该变量的作用域为if/else语句,如下所示

package main
import (
"fmt"
)
func main() {
num := 8

if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
fmt.Println("num outside:",num)
}

现在我的问题是,我真的只能在if/else语句中声明一个临时变量吗?

我在下面尝试了两种方式,但因命中错误而失败

//if num := 9; c := 10; num < 0 {..... //syntax error: c := 10 used as value
//if num := 9, c:= 10; num < 0 {..... //syntax error: unexpected :=, expecting semicolon or newline

为什么,Go 有元组赋值。尝试:

if num,c:=9,10; num<0 {
//whatever
}

现在我们已经到了,你应该注意到最优语句(;之前的那个(可以不仅仅是赋值。写是合法的:

if fmt.Println("something"); num<10 {
}

最新更新