条件
if
语句var variable = 10 if variable > 5 { fmt.Printf('variable > 5') }
if...else
语句var variable = 10 if variable > 5 { fmt.Printf('variable > 5') } else { fmt.Printf('variable <= 5') }
if
嵌套var variable = 10 if variable > 5 { fmt.Printf('variable > 5') if variable > 10 { fmt.Printf('variable > 10') } } else { fmt.Printf('variable <= 5') }
switch
语句//switch case自带break //default必须有,不能漏下 var variable = 10 switch variable { case 5 : fmt.Printf('variable = 5') case 10 : fmt.Printf('variable = 10') default : fmt.Printf('default') }
select
语句var c1, c2, c3 chan int var i1, i2 int select { case i1 = <-c1: fmt.Printf("received ", i1, " from c1\n") case c2 <- i2: fmt.Printf("sent ", i2, " to c2\n") case i3, ok := (<-c3): // same as: i3, ok := <-c3 if ok { fmt.Printf("received ", i3, " from c3\n") } else { fmt.Printf("c3 is closed\n") } default: fmt.Printf("no communication\n") }
循环
-
for循环
var sum = 1 //for写法 for i:=0 ; i<10 ; i++ { sum += i } //while写法 for sun<=55{ sum += sum } //无限循环 for { sum += sum }
-
break关键字(用法同C等)
-
continue关键字(用法同C等)
-
goto关键字
var a int = 10 /* 循环 */ LOOP: for a < 20 { if a == 15 { /* 跳过迭代 */ a = a + 1 goto LOOP } fmt.Printf("a的值为 : %d\n", a) a++ }
a的值为 : 10
a的值为 : 11
a的值为 : 12
a的值为 : 13
a的值为 : 14
a的值为 : 16
a的值为 : 17
a的值为 : 18
a的值为 : 19
函数
关键字:func
func max(num1, num2 int) int {
/* 定义局部变量 */
var result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
函数的调用
func main() {
/* 定义局部变量 */
var a int = 100
var b int = 200
var ret int
/* 调用函数并返回最大值 */
ret = max(a, b)
fmt.Printf( "最大值是 : %d\n", ret )
}
函数返回多个值
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Google", "Runoob")
fmt.Println(a, b)
}