golang case多个值

介绍
在编程中,我们经常需要在给定的多个值中进行选择和处理。在Go语言中,我们可以使用case关键字来处理多个值。
case语句用于在switch语句中匹配多个值,并执行相应的代码块。每个case语句后面可以跟随一个或多个具体的值或表达式。当switch表达式的值与case语句列表中的某个值匹配时,对应的代码块将会被执行。
语法
下面是case语句的基本语法:
switch expression {
case value1:
// code block
case value2:
// code block
case value3, value4:
// code block
default:
// code block
}
expression:一个表达式,通常是一个变量或一个函数返回的结果,用于被匹配。value1, value2, value3…:是一个或多个具体的值或表达式,用于与expression进行匹配。code block:与每个case语句关联的代码块。当匹配到对应的case语句时,将会执行该代码块。
case语句是按照顺序进行匹配的,一旦匹配成功,将会执行对应的代码块,并且不会继续匹配其他的case语句。如果没有任何一个case匹配成功,且存在default语句,则会执行default语句块。
示例
下面是一个使用case语句处理多个值的示例:
package main
import "fmt"
func main() {
fruit := "apple"
switch fruit {
case "apple", "pear":
fmt.Println("It's a fruit.")
case "carrot", "potato":
fmt.Println("It's a vegetable.")
default:
fmt.Println("It's something else.")
}
}
输出:
It's a fruit.
在这个示例中,我们定义了一个名为fruit的变量,并将其值设置为"apple"。然后,我们使用switch语句来判断这个水果是属于哪一类的。
在switch语句的case语句中,我们同时匹配了"apple"和"pear"这两个值。由于变量fruit的值是"apple",所以这个case语句匹配成功,对应的代码块将会被执行,输出为"It's a fruit."。
如果我们将变量fruit的值改为"potato",则会输出"It's a vegetable.",因为此时的case语句中匹配的是"carrot"和"potato"这两个值。
如果变量fruit的值不在我们的匹配列表中,则会执行default语句块,输出"It's something else."。
使用表达式
除了使用具体的值作为case语句的匹配条件,我们还可以使用表达式。下面是一个使用表达式匹配奇偶数的示例:
package main
import "fmt"
func main() {
number := 7
switch number % 2 {
case 0:
fmt.Println("It's an even number.")
case 1:
fmt.Println("It's an odd number.")
}
}
输出:
It's an odd number.
在这个示例中,我们定义了一个名为number的变量,并将其值设置为7。然后,我们使用switch语句来判断这个数是奇数还是偶数。
在switch语句的case语句中,我们使用了表达式number % 2来判断变量number的奇偶性。如果变量number是偶数,那么number % 2的结果将为0,对应的代码块将会执行,输出"It's an even number."。如果变量number是奇数,那么number % 2的结果将为1,对应的代码块将会执行,输出"It's an odd number."。
总结
通过使用case语句来处理多个值,我们可以根据不同的情况执行不同的代码块。在Go语言中,case语句可以同时匹配多个具体的值或表达式。
使用case语句时,我们可以根据实际需求进行灵活的匹配操作,并且可以通过设置default语句来处理没有匹配项的情况。
极客教程