GolangNote

Golang笔记

GoLang switch 控制语句的灵活应用

Permalink

与我们以前接触过的switch 控制语句不同,GoLang 的switch 语句使用更灵活。

GoLang switch 控制语句的灵活应用

简单使用示例

Go: switch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
score := 79
switch score / 10 {
    case 9:
        rz = "优秀"
        fallthrough  // 表示继续执行下面的Case而不是退出Switch
    case 8:
        rz = "良好"
    case 7:
        rz = "一般"
        break //可以添加
    case 6:
        rz = "及格"
    default:
        rz = "不及格"
 }

使用说明:

  • switch 的判断条件可以是任何数据类型
  • 在每个case 里可以不用break 退出,默认退出
  • 可以通过关键字 fallthroughswitch 不退出,而继续判断下面的case

如果多个匹配结果所对应的代码段一样,则可以在一个case中并列出所有的匹配项

Go: switch
1
2
3
4
5
6
7
8
switch ch {
    case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
        cl = "Int"
    case 'A', 'B', 'C', 'D',  'a', 'b', 'c', 'd', 'e':
        cl = "ABC"
    default:
        cl = "Other Char"
}

switch可以没有表达式,在 Case 中使用布尔表达式,这样形如 if-else

Go: switch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
func GetConstellation(month, day int) (star string) {
    switch {
    case month <= 0, month >= 13, day <= 0, day >= 32:
        star = "-1"
    case (month == 1 && day >= 20), (month == 2 && day <= 18):
        star = "水瓶座"
    case (month == 2 && day >= 19), (month == 3 && day <= 20):
        star = "双鱼座"
    case (month == 3 && day >= 21), (month == 4 && day <= 19):
        star = "白羊座"
    case (month == 4 && day >= 20), (month == 5 && day <= 20):
        star = "金牛座"
    case (month == 5 && day >= 21), (month == 6 && day <= 21):
        star = "双子座"
    case (month == 6 && day >= 22), (month == 7 && day <= 22):
        star = "巨蟹座"
    case (month == 7 && day >= 23), (month == 8 && day <= 22):
        star = "狮子座"
    case (month == 8 && day >= 23), (month == 9 && day <= 22):
        star = "处女座"
    case (month == 9 && day >= 23), (month == 10 && day <= 22):
        star = "天秤座"
    case (month == 10 && day >= 23), (month == 11 && day <= 21):
        star = "天蝎座"
    case (month == 11 && day >= 22), (month == 12 && day <= 21):
        star = "射手座"
    case (month == 12 && day >= 22), (month == 1 && day <= 19):
        star = "魔蝎座"
    }
    return
}

本文网址: https://golangnote.com/topic/35.html 转摘请注明来源

Related articles

Golang Web 程序生产环境独立部署示例

一个 web 应用通常是跑在一个前端代理,如 Nginx 后,这样可以方便的在同一个服务器部署多个应用。这里说的独立部署是指让 go web 程序直接暴露在外面,独占 443、80 端口(俗称裸跑)。这样做除了性能有些提高外,更重要的是部署方便。...

Golang 泛型性能初识

编程时,我们通常需要编写“泛型”函数,其中确切的数据类型并不重要。例如,您可能想编写一个简单的函数来对数字进行求和。Go 直到最近才有这个概念,但最近才添加了它(从1.18版开始)。...

Golang http client 处理重定向网页

假设一个网址有多个重定向,A-B-C-D,使用 http.Client.Get 最后取得的内容是网址D的内容,我们该手动处理包含重定向的网址。...

Write a Comment to "GoLang switch 控制语句的灵活应用"

Submit Comment Login
Based on Golang + fastHTTP + sdb | go1.22.3 Processed in 1ms