1 if-else
condition条件不需要括号,跟其他语言的if-else没有区别。
格式固定,不可以更改,比如改变{}的位置,是不行的。
if condition1 {
// do something
} else if condition2 {
// do something else
} else {
// catch-all or default
}
一些常见判断
//判断字符串为空
if str == "" {
...
}
if len(str) == 0 {
...
}
//判断当前操作系统类型
if runtime.GOOS == "windows" {
...
}
//判断语句中定义变量,这么做唯一的实际意义是限制val的作用域在if语句块内部
if val := 10; val > max {
// do something
}
//有error返回的函数,判断其结果,出现错误通过return 返回或者os.Exit(1)退出
an, err := strconv.Atoi(orig)
if err != nil {
fmt.Printf("orig %s is not an integer - exiting with error\n", orig)
return
}
//这是一些习惯用法,但是我并不觉得有太大的必要
if value, ok := readData(); ok {
…
}
2 switch
switch var1 {
case val1:
...
case val2, val3:
...
default:
...
}
是不需要break的,自动从某个case跳出。也不需要花括号括起来。
所以小心C