package main
import (
"fmt"
"io/ioutil"
)
// 一般 switch 语句
func eval(a,b int,op string) int {
var result int
switch op {
case "+":
result = a + b
case "-":
result = a - b
case "*":
result = a * b
case "/":
result = a / b
default:
panic("错误运算符" + op)
}
return result
}
// 简洁版 switch
func grade (score int) string {
g := ""
switch {
case score < 0 || score > 100 :
panic(fmt.Sprintf("分数错了")) // panic 用与手动抛出错误
case score < 60:
g = "f"
case score < 80:
g = "c"
case score < 90:
g = "b"
case score <= 100:
g = "a"
}
return g
}
func main() {
filename := "a.txt"
contents, err := ioutil.ReadFile(filename)
// 正常条件语句
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n",contents)
}
// 先执行一条语句,再进行判断
if contents1, err1 := ioutil.ReadFile(filename); err != nil {
fmt.Println(err1)
} else {
fmt.Printf("%s\n",contents1)
}
// fmt.Printf("%s",contents1) // 报错! if语句里面定义的contents1、err1,出了这个块就访问不到了
fmt.Println(eval(1,2,"+"))
fmt.Println(
grade(10),
grade(100),
)
}