```go
var f os.File
if f, err := os.Open("file"); err != nil { //分号没有被括号包含,感觉分号后面像是另外一行
}
```
其它语言中if中都没有分号,怎么go看起来怪怪的
第 1 条附言 ·
if后面既然能用分号,那是否可以用多个分号?
第 2 条附言 ·
```go
if a,b := 1,2;a==1;b==2{ //用多个分号就报错
fmt.Println(a,b)
}
```
貌似只能用1个分号
你的第一段代码是有问题的。应该会提示 f declared and not used。指的是var f os.File声明的变量f没有使用。
if语句中的前面的分号部分,实际是初始化变量用的,你使用 := 相当于又声明了一个局部变量f。
#1
更多评论
先把 [tour of go](https://tour.golang.org/list) 看完吧,你这个问题在 [这里](https://tour.golang.org/flowcontrol/6) 说得很明白
#3