gpt4 book ai didi

ios - 有没有办法在 Swift 中使用 switch case 比较数组和数组?

转载 作者:搜寻专家 更新时间:2023-11-01 05:55:59 25 4
gpt4 key购买 nike

我已经尝试过使用 if 比较数组与数组:

let ArrayA = ["A", "B"]

if ArrayA == ["A", "B"] {
print("true")
} else {
print("false")
}

结果将是 true,那么我们如何使用 switch 和 case 来实现呢?可以用 Swift 语言做到吗?

最佳答案

您可以使用带有 where 谓词的案例:

let array = ["A", "B"]

switch array {
case _ where array == ["A", "B"]: print("AB")
case _ where array == ["C", "D"]: print("CD")
default: print("default")
}

如果您确实需要,可以定义一个模式匹配运算符 (~=) 来调用 ==switch 语句查找接受给定模式和候选者的模式匹配运算符的定义,以确定是否匹配 case:

let array = ["A", "B"]

func ~= <T: Equatable>(pattern: [T], candidate: [T]) -> Bool {
return pattern == candidate
}

switch array {
case ["A", "B"]: print("AB")
case ["C", "D"]: print("CD")
default: print("default")
}

不过,我建议不要这样做,因为不清楚这种情况是否在进行== 检查,包含(_:)hasPrefix(_:)

关于ios - 有没有办法在 Swift 中使用 switch case 比较数组和数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45070192/

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