gpt4 book ai didi

通过使用值的 slice 作为带有 switch 语句的 case 来匹配一个值

转载 作者:IT王子 更新时间:2023-10-29 01:59:21 25 4
gpt4 key购买 nike

我知道您可以通过用逗号分隔值来将多个值与 switch 语句匹配:

func main() {
value := 5
switch value{
case 1,2,3:
fmt.Println("matches 1,2 or 3")
case 4,5, 6:
fmt.Println("matches 4,5 or 6")
}
}

http://play.golang.org/p/D_2Zp8bW5M

我的问题是,你能否通过使用多个值的 slice 作为 case(s) 来将多个值与 switch 语句匹配?我知道这可以通过使用 if else 语句和“Contains(slice, element)”函数来完成,我只是想知道它是否可能。

也许是这样的?

func main() {
value := 5

low := []int{1, 2, 3}
high := []int{4, 5, 6}

switch value {
case low:
fmt.Println("matches 1,2 or 3")
case high:
fmt.Println("matches 4,5 or 6")
}
}

最佳答案

你能得到的最好的可能是这个:

package main

import "fmt"

func contains(v int, a []int) bool {
for _, i := range a {
if i == v {
return true
}
}
return false
}

func main() {
first := []int{1, 2, 3}
second := []int{4, 5, 6}

value := 5
switch {
case contains(value, first):
fmt.Println("matches first")
case contains(value, second):
fmt.Println("matches second")
}
}

关于通过使用值的 slice 作为带有 switch 语句的 case 来匹配一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31851842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com