在 switch
语句中,每个 case
的表达式都必须是可比较的类型,例如整数、字符、字符串或接口类型。同时,如果 case
语句中出现多个表达式,则它们之间使用逗号分隔,例如:
switch x {
case 1, 2, 3:
// 在 x 等于 1、2 或 3 时执行的代码块
case 4, 5, 6:
// 在 x 等于 4、5 或 6 时执行的代码块
default:
// 在 x 不等于任何一个值时执行的代码块
}
除了上面提到的使用 default
来处理所有未匹配到的情况之外,还可以使用 fallthrough
关键字来继续执行下一个 case
的代码块。fallthrough
只能在 case
语句的末尾使用,例如:
switch x {
case 1:
// 在 x 等于 1 时执行的代码块
fallthrough
case 2:
// 在 x 等于 1 或 2 时执行的代码块
default:
// 在 x 不等于 1 或 2 时执行的代码块
}
在上面的代码中,如果 x
等于 1,则会执行第一个 case
的代码块,然后因为 fallthrough
关键字的存在,继续执行第二个 case
的代码块。否则会直接执行 default
代码块。需要注意的是,fallthrough
只会执行下一个 case
的代码块,而不会对之后的 case
产生影响。
最后需要注意的是,由于 Go 中的 switch
语句不需要显式地使用 break
关键字来终止执行,因此在使用 fallthrough
关键字时,需要格外小心。使用 fallthrough
可能会让代码变得难以理解和维护。因此,在使用 fallthrough
时,需要仔细考虑代码的逻辑,确保它符合预期并易于理解。