使用switch
语句来选择要执行的多个代码块之一。
这个switch
Go 中的语句与 C、C++、Java、JavaScript 和 PHP 中的语句类似。不同之处在于它只运行匹配的情况,因此不需要break
陈述。
switch
expression {
case
x:
// code block
case
y:
// code block
case
z:
...
default:
// code block
}
它是这样工作的:
switch
表达式与每个值进行比较case
default
关键字是可选的。它指定如果没有则运行一些代码case
匹配下面的示例使用工作日数字来计算工作日名称:
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
关键字指定在没有大小写匹配的情况下运行的一些代码:
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
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!