if
if 的基本条件如何书写? 有哪些语法约束?
- 条件判断:
if要求 bool 条件,成立执行第一分支,否则执行else;条件无需括号,else与前一个}必须同行;
func main() {
score := 80
if score >= 60 { // if 条件必须是 bool; 条件不需要括号
println("pass")
} else { // else 必须跟在前一个右花括号同一行
println("fail")
}
}
if 的初始化语句如何书写? 变量作用域是什么?
- 初始化作用域: 分号前的短语句先执行,声明的变量在整个 if、else if、else 链中可见,离开该语句后失效;
func main() {
if n := len("go"); n > 0 { // n 只在 if-else 内可见
println(n)
}
}
if 多分支如何书写, 分支如何匹配?
- 多分支匹配: 按源码顺序判断条件,只执行第一个为 true 的分支;全部失败时执行末尾
else,若没有则直接继续;
func main() {
n := 0
if n > 0 {
println("positive")
} else if n < 0 { // 从上到下匹配第一个 true 分支
println("negative")
} else {
println("zero")
}
}