文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
switch 语句
Go 语言中的 switch
语句是一种多分支选择结构,用于根据表达式的结果执行不同的代码块。与其他语言相比,Go 的 switch
语句功能更强大且更简洁,同时支持多种用法。以下是一些 Go 中 switch
语句的常见用法:
基本用法
package main
import "fmt"
func main() {
i := 2
switch i {
case 1:
fmt.Println("i is 1")
case 2:
fmt.Println("i is 2")
case 3:
fmt.Println("i is 3")
default:
fmt.Println("i is not 1, 2, or 3")
}
}
解释 :
- 当
i
的值为2
时,执行对应的case
代码块并打印i is 2
。 default
子句在没有任何匹配的case
时执行,类似于其他语言的else
。
多条件匹配
在 Go 中,你可以在一个 case
子句中匹配多个值:
package main
import "fmt"
func main() {
i := 4
switch i {
case 1, 2, 3:
fmt.Println("i is 1, 2, or 3")
case 4, 5, 6:
fmt.Println("i is 4, 5, or 6")
default:
fmt.Println("i is something else")
}
}
解释 :
- 如果
i
的值是4
、5
或6
,则会执行case 4, 5, 6
的代码块。
无表达式的 switch
在 Go 中,你可以省略 switch
后的表达式,这时它会默认求值为 true
,可以用来替代多个 if-else
语句:
package main
import "fmt"
func main() {
num := 10
switch {
case num < 0:
fmt.Println("num is negative")
case num == 0:
fmt.Println("num is zero")
case num > 0:
fmt.Println("num is positive")
}
}
解释 :
- 这里的
switch
是基于布尔表达式来判断的,每个case
子句只要条件成立,就会执行对应的代码块。
带初始化语句的 switch
Go 允许在 switch
语句中包含一个初始化语句,它在执行 switch
判断之前运行:
package main
import "fmt"
func main() {
switch num := 5; {
case num < 0:
fmt.Println("num is negative")
case num == 0:
fmt.Println("num is zero")
case num > 0:
fmt.Println("num is positive")
}
}
解释 :
- 这里
num := 5
是初始化语句,它在switch
语句开始之前被执行,然后再进行case
的判断。
特点
- 不需要显式的
break
:Go 中的switch
语句不需要显式的break
语句。每个case
在执行完后会自动退出switch
,除非使用了fallthrough
关键字。 fallthrough
关键字 :如果你希望在执行完一个case
后继续执行下一个case
,可以使用fallthrough
关键字。
package main
import "fmt"
func main() {
i := 2
switch i {
case 2:
fmt.Println("i is 2")
fallthrough
case 3:
fmt.Println("i is 3")
}
}
解释 :
- 即使
i
是2
,由于fallthrough
的存在,程序也会继续执行下一个case
,因此会打印i is 3
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论