带表达式的 `switch`
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 40 课,共 109 课。
让我们学习如何在 Go 的 switch 语句中使用表达式,这样我们就可以直接在每个 case 中判断条件。
首先,我们来看看如何在每个 case 中使用条件的 switch 语句,检查一个数字是正数、负数还是零:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}运行这段代码后,程序会在屏幕上显示:
Negative number注意,我们使用的是 switch {,后面没有值。这意味着 Go 会将每个 case 表达式作为布尔条件进行求值。由于 num 是 -5,第二个 case num < 0 的求值结果为 true,因此会打印 "Negative number"。
我们也可以直接在 switch 语句中初始化变量。来看看它是如何工作的:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}运行这段代码后,我们会得到相同的结果:
Negative number在这个示例中,我们直接在 switch 语句中声明并初始化了 num。分号将初始化与 switch 表达式分开(这里表达式为空)。这样可以让代码更紧凑,同时保持相同的功能。
挑战
入门switch 表达式。你需要补全代码,根据星期几的名称,使用 switch 语句确定对应的描述。变量
dayName 已定义,值为 "Wednesday"。你的任务是使用 switch 表达式,将 description 变量设置为:- 星期一对应
"Start of the week"- 星期三对应
"Midweek"- 星期五对应
"Almost weekend"- 星期六或星期日对应
"Weekend"- 其他日期对应
"Regular day"亲手试试
// TODO:编写 switch 语句,根据 dayName 设置 description
// 如果是 Monday:设置为 "Start of the week"
// 如果是 Wednesday:设置为 "Midweek"
// 如果是 Friday:设置为 "Almost weekend"
// 如果是 Saturday 或 Sunday:设置为 "Weekend"
// 如果是其他日期:设置为 "Regular day"
// 打印结果
fmt.Printf("%s is %s\n", dayName, description)
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器