if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ }
居然没有括号,和python很像。可是有大括号,与python又不同。python
例子:git
package main import "fmt" func main() { var a int = 1 if a < 2 { fmt.Printf("a < 2\n" ) } fmt.Printf("a = %d\n", a) }
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ }
if score >= 90 { fmt.Println("优秀") } else if score >= 70 { fmt.Println("良好") } else if score >= 60 { fmt.Println("通常") } else { fmt.Println("差") }
if 布尔表达式 1 { /* 在布尔表达式 1 为 true 时执行 */ if 布尔表达式 2 { /* 在布尔表达式 2 为 true 时执行 */ } }
switch var1 { case val1: ... case val2, val3: ... default: ... }
switch 语句还能够被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。github
switch x.(type){ case type1: statement1 case type2: statement2 default: /* 可选 */ statement3; }
select 语句相似于switch语句,可是select会随机执行一个可运行的case。若是没有case可运行,它将阻塞,直到有case可运行。golang
这个东西我还真没有在其余语言里面看到过(多是我了解的太少)。学习
select { case communication clause : statement1; case communication clause : statement2; /* 你能够定义任意数量的 case */ default : /* 可选 */ statement3; }
学习这个须要先学习channel。我channel还不会呢,先不深刻看这个了。code