if中用分号是否奇怪?

taatcc · 2018-05-08 10:51:08 · 6750 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-05-08 10:51:08 的主题,其中的信息可能已经有所发展或是发生改变。

var f os.File
if f, err := os.Open("file"); err != nil {    //分号没有被括号包含,感觉分号后面像是另外一行

}

其它语言中if中都没有分号,怎么go看起来怪怪的


有疑问加站长微信联系(非本文作者)

第 1 条附言  ·  2018-05-08 11:05:01

if后面既然能用分号,那是否可以用多个分号?

第 2 条附言  ·  2018-05-08 11:23:21
if a,b := 1,2;a==1;b==2{    //用多个分号就报错
fmt.Println(a,b)
}

貌似只能用1个分号

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6750 次点击  
加入收藏 微博
7 回复  |  直到 2018-05-15 17:18:15
tk103331
tk103331 · #1 · 7年之前

你的第一段代码是有问题的。应该会提示 f declared and not used。指的是var f os.File声明的变量f没有使用。

if语句中的前面的分号部分,实际是初始化变量用的,你使用 := 相当于又声明了一个局部变量f。

taatcc
taatcc · #2 · 7年之前
tk103331tk103331 #1 回复

你的第一段代码是有问题的。应该会提示 f declared and not used。指的是var f os.File声明的变量f没有使用。 if语句中的前面的分号部分,实际是初始化变量用的,你使用 := 相当于又声明了一个局部变量f。

我也验证了下,if中的那个f确实是局部变量,才发现这点

beary
beary · #3 · 7年之前

先把 tour of go 看完吧,你这个问题在 这里 说得很明白

taatcc
taatcc · #4 · 7年之前
bearybeary #3 回复

先把 [tour of go](https://tour.golang.org/list) 看完吧,你这个问题在 [这里](https://tour.golang.org/flowcontrol/6) 说得很明白

谢谢,打不开tour of go,能指教下吗?

beary
beary · #5 · 7年之前
taatcctaatcc #4 回复

#3楼 @beary 谢谢,打不开tour of go,能指教下吗?

被墙了,包括 golang.org 也被墙了,你可以用梯子看。

不过你可以看顶部菜单的“官方文档-->Go 指南”,effective go 在 “官方文档-->中文文档-->文档-->实效 Go 编程”中。

taatcc
taatcc · #6 · 7年之前
bearybeary #5 回复

#4楼 @taatcc 被墙了,包括 [golang.org](https://golang.org) 也被墙了,你可以用梯子看。 不过你可以看顶部菜单的“官方文档-->Go 指南”,effective go 在 “官方文档-->中文文档-->文档-->实效 Go 编程”中。

谢谢!

YIYIYI
YIYIYI · #7 · 7年之前

可以看看这个,有需要的话 https://cloud.tencent.com/developer/doc/1101

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传