Go switch 语句
switch 语句
使用 switch
语句选择要执行的多个代码块之一。
Go 中的 switch
语句类似于 C、C++、Java、JavaScript 和 PHP 中的语句。 不同之处在于它只运行匹配的案例,因此不需要 break
语句。
Single-Case switch 语句
语法
switch expression {
case x:
// 代码块
case y:
// 代码块
case z:
...
default:
// 代码块
}
这就是它的工作原理:
- 表达式被计算一次
switch
表达式的值与每个case
的值进行比较
- 如果匹配,则执行关联的代码块
default
关键字是可选的。 如果没有case
匹配 ,它会指定一些要运行的代码
Single-Case switch 示例
下面的示例使用工作日数字来计算工作日名称:
实例
package main
import ("fmt")
func main() {
day := 4
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
}
}
结果:
Thursday
default 默认关键字
default
关键字指定在没有大小写匹配时要运行的一些代码:
实例
package main
import ("fmt")
func main() {
day := 8
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
default:
fmt.Println("Not a weekday")
}
}
结果:
Not a weekday
所有 case
值都应与 switch
表达式具有相同的类型。 否则编译器会报错:
实例
package main
import ("fmt")
func main() {
a := 3
switch a {
case 1:
fmt.Println("a is one")
case "b":
fmt.Println("a is b")
}
}
结果:
./prog.go:11:2: cannot use "b" (type untyped string) as type int