所有的编程语言中,都不可避免的需要使用判断语句。条件判断语句一般使用if
或者switch
实现。
1 if 语句
首先上一段代码:
package main
import (
"fmt"
"io/ioutil"
)
func main() {
const filename = "abc.txt"
contents, err := ioutil.ReadFile(filename)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n", contents)
}
}
由上面的语句可知, if
语句的使用不需要使用括号进行包裹。又,上面的语句可以改写为:
if contents, err := ioutil.ReadFile(filename); err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n", contents)
}
上述程序表明,if条件语句可以进行赋值,且后面可以执行多条语句。if条件语句中定义的变量,其有效期仅处于if语句块中。
2 switch语句
首先还是先上一段代码:
package main
func eval (a,b int, op string) int {
var result int
switch op{
case "+":
result = a + b
case "-":
result = a-b
default:
panic ("unsupported operator: "+ op)
}
return result
}
func main() {
println(eval(1,2,"-"))
}
由上述代码可以发现,区别于其他的语言,Go语言中不需要在每个case后面打break!
switch后可以没有表达式,只在case后面直接打表达式即可。例如:
func grade(score int) string {
switch {
case score<60:
return "F"
case score<80:
return "C"
...
}
}