if 语旬
{必须放在行尾,和 if 或 if else 放在一行。
if x < y {
return x
}
if 后面可以带一个简单的初始化语句,并以分号分割,该简单语句声明 的变量的作用域是整个 if 语句块
if x :=f(); x <y { //初始化语句中的声明变量x
return x
} else if x >z { //x在else if里面一样可以被访问
return z
}else {
return y
}
go语言没有条件运算符
switch 语旬
switch 语句会根据传入的参数检测井执行符合条件的分支
switch 后面可以带一个初始化语句
switch后面没有表达式,则case后是一个或多个布尔表达式
switch z := x; {
case z > 3, y < 5:
result = z
}
通过 fallthrough语句来强制执行下一个 case 子句,fallthrough不能用在switch的最后一个分支。
x := 1
switch z := x; {
case z < 3:
fmt.Println("z<3")
case z > 5:
fmt.Println("z<5")
}
输出
z<3
x := 1
switch z := x; {
case z < 3:
fmt.Println("z<3")
fallthrough
case z > 5:
fmt.Println("z<5")
}
输出
z<3
z<5
switch 支持 default 语句,default语句可以放到任意位置,并不影响 switch 的判断逻辑。
x := 1
switch z := x; {
case z > 3:
fmt.Println("z>3")
default:
fmt.Println("default")
case z > 5:
fmt.Println("z>5")
}
输出
default