在 Go 语言中,switch 语句是一个多分支选择控制结构,用于根据表达式的值执行相应的代码块。相比于其他语言的 switch 语句,Go 语言的 switch 具有更高的灵活性和简洁性。下面详细介绍 Go 语言中的 switch 语句,包括其语法、使用方法和实例。
switch
switch 语句的基本形式如下:
switch 表达式 { case 值1: // 代码块 case 值2: // 代码块 default: // 代码块 }
case
default
package main import "fmt" func main() { day := "Tuesday" switch day { case "Monday": fmt.Println("Start of the work week") case "Tuesday": fmt.Println("Second day of the work week") case "Wednesday": fmt.Println("Midweek") case "Thursday": fmt.Println("Almost the end of the work week") case "Friday": fmt.Println("Last work day of the week") default: fmt.Println("Weekend!") } }
一个 case 可以有多个匹配值,使用逗号分隔:
package main import "fmt" func main() { day := "Saturday" switch day { case "Saturday", "Sunday": fmt.Println("Weekend!") default: fmt.Println("Weekday") } }
当没有提供表达式时,switch 语句等价于 switch true,每个 case 都是一个独立的布尔表达式:
switch true
package main import "fmt" func main() { num := 10 switch { case num < 0: fmt.Println("Negative number") case num == 0: fmt.Println("Zero") case num > 0: fmt.Println("Positive number") } }
在 switch 语句中,可以在 switch 关键字后面添加一个简单的语句,用于在评估表达式之前执行:
package main import "fmt" func main() { switch num := 10; { case num < 0: fmt.Println("Negative number") case num == 0: fmt.Println("Zero") case num > 0: fmt.Println("Positive number") } }
fallthrough
在 Go 语言中,case 分支默认不自动向下执行。要显式地继续执行下一个 case,可以使用 fallthrough 关键字:
package main import "fmt" func main() { num := 2 switch num { case 1: fmt.Println("One") fallthrough case 2: fmt.Println("Two") fallthrough case 3: fmt.Println("Three") default: fmt.Println("Other number") } }
输出结果:
Two Three Other number
类型开关用于对接口类型的变量进行类型判断:
package main import "fmt" func main() { var i interface{} = 10 switch v := i.(type) { case int: fmt.Printf("Integer: %d\n", v) case string: fmt.Printf("String: %s\n", v) default: fmt.Printf("Unknown type\n") } }
空 switch 是一种特殊情况,switch 后面没有表达式,相当于 switch true,可以用来简化多个条件判断:
package main import "fmt" func main() { num := 7 switch { case num%2 == 0: fmt.Println("Even number") case num%2 != 0: fmt.Println("Odd number") } }
Go 语言中的 switch 语句功能强大且灵活,可以用于多种场景下的条件判断。通过学习和掌握 switch 语句,可以编写出更加简洁和高效的代码。无论是基本的值匹配,还是复杂的类型判断,switch 都能提供有效的解决方案。
原文链接:codingdict.net