fmt.Printf(“请输入: \n”)
fmt.Scan
- 运算符
可以a++ 或 a--
但 a = a++ 报错
- 条件语句
package main
import "fmt"
func main() {
if num := 9; num < 0 { # 可以在if中声明一个变量
fmt.Println(num, "is neg")
} else if num < 10 {
fmt.Println(num, "less 10")
} else {
fmt.Println(num, "else")
}
}
=>less 10
switch var1 {
case val1:
...
case val2:
...
default:
...
}
switch默认每个case中都是break,如果需要穿透,加fallthrough
select {
case communication clause :
statement(s);
case communication clause :
statement(s);
/* 你可以定义任意数量的 case */
default : /* 可选 */
statement(s);
}
每个 case 都必须是一个通信
随机执行一个可运行的case,其他不会执行。
否则:default 子句,若没有 default 子句,select 将阻塞,直到某个通信可以运行;Go 不会重新对 channel 或值进行求值。
- 循环
for init; condition; post { }
for condition { } # => while in C
无限循环
for { }
for true {
xxxx
}
for key, value := range oldMap {
newMap[key] = value
}
strings := []string{"google", "baidu"}
for i, s := range strings {
fmt.Println(i, s)
}
# break,continue,goto可带标记
re:
for i := 1; i <= 3; i++ {
fmt.Printf("i: %d\n", i)
for i2 := 11; i2 <= 13; i2++ {
fmt.Printf("i2: %d\n", i2)
break re
}
}
var x = 1
A: for x < 100 {
if x%10 == 0 {
**goto** A
}
x++
}