Go语言仅用for实现所有循环,无while/do-while;if必须带花括号且条件不加括号,支持初始化语句但变量作用域限于if/else分支。
Go 语言没有 while、do-while,也没有括号包围条件表达式,所有控制结构语法更精简但约束更强——写错括号或漏写花括号会直接报错,不是警告。
if 语句必须带花括号,且条件不加括号
Go 要求 if 后必须跟花括号,即使只有一行;同时条件表达式不能加括号,否则编译失败。
常见错误:if (x > 0) { ... } → 编译报错 syntax error: unexpected (
- 正确写法:
if x > 0 { ... } - 支持初始化语句:
if err := doSomething(); err != nil { ... },该变量作用域仅限于该if及其else分支 - 不能在条件里声明并复用变量:
if v := getValue(); v != nil && v.IsValid() { ... }是合法的,但v在else中不可见
for 是 Go 唯一的循环结构,替代 while 和 for-range
Go 没有 while 关键字,所有循环都靠 for 实现:传统三段式、无条件循环、迭代 range。