Golang switch 结构
在 Go 语言中,switch 结构是一个控制流语句,它允许控制流程根据一个变量或表达式的不同值来分支到不同的代码块中。
- 基本的 switch 结构:
package main
import "fmt"
func main() {
num := 2
switch num {
case 1:
fmt.Println("Number is 1")
case 2:
fmt.Println("Number is 2")
case 3:
fmt.Println("Number is 3")
default:
fmt.Println("Number is not 1, 2, or 3")
}
}
在这个例子中,switch 结构检查变量 num 的值。如果 num 的值符合 case 后的值,那么程序将执行对应的代码块。如果没有任何一个 case 匹配,那么将执行 default 代码块。
- 使用 switch 结构进行类型判断:
package main
import "fmt"
func main() {
var a float64 = 100.345
switch a := int(a); {
case a < 100:
fmt.Println("Value is less than 100")
case a < 200:
fmt.Println("Value is less than 200")
default:
fmt.Println("Value is greater than or equal to 200")
}
}
在这个例子中,我们使用了一个类型断言,将浮点数 a 转换为整数,并在 switch 结构中进行判断。
- 使用 fallthrough 关键字:
package main
import "fmt"
func main() {
num := 2
switch num {
case 1:
fmt.Println("Number is 1")
fallthrough
case 2:
fmt.Println("Number is 2")
fallthrough
case 3:
fmt.Println("Number is 3")
default:
fmt.Println("Number is not 1, 2, or 3")
}
}
在这个例子中,我们使用了 fallthrough 关键字。当程序执行到带有 fallthrough 的 case 时,它会继续执行下一个 case,无论下一个 case 的值是否匹配。
- 使用 switch 结构作为代替 if-else-if 链:
package main
import "fmt"
func main() {
num := 3
switch {
case num < 10:
fmt.Println("Number is less than 10")
case num < 20:
fmt.Println("Number is less than 20")
case num < 30:
fmt.Println("Number is less than 30")
default:
fmt.Println("Number is not less than 30")
}
}
在这个例子中,switch 后面没有指定判断的变量,这意味着它会判断每一个 case 表达式。如果任何一个表达式计算结果为真,那么就会执行对应的代码块。如果没有任何一个表达式为真,那么将执行 default 代码块。
以上就是 Golang 中 switch 结构的几种常见用法。
评论已关闭