gpt4 book ai didi

ios - 在 Swift 3 或 4 中检查 if 条件矩阵

转载 作者:行者123 更新时间:2023-11-28 09:51:48 25 4
gpt4 key购买 nike

假设我有一个需要检查的条件矩阵:

let one: String? = "one"
let two: String? = nil

func test() {
if one == nil && two == nil {
print("neither are valid")
} else if one == nil {
print("one is nil")
} else if (two == nil) {
print("two is nil")
} else {
print("\(one) and \(two) are valid")
}
}

是否有 Swift 语言的功能可以让我写得更干净、更“像 Swift 一样”?相同的语法是否可以很好地扩展到一组三维条件?

我知道使用 guard,我可以在继续之前检查两个值是否有效,但是我需要根据一个、两个或两个都不为 nil 来执行某些操作,并且这显然会导致一些误报(守卫希望在继续之前两者都有效):

guard let one = one, let two = two else {
return
}
if one == nil {
print("one is nil")
} else if (two == nil) {
print("two is nil")
} else {
print("\(one) and \(two) are valid")
}

我确定我也可以使用 switch,但这似乎并不比没完没了的 if/else 更优雅:

switch (one != nil || two != nil) {
case one == nil && two == nil:
print("neither are valid")
case one == nil:
print("one is nil")
case two == nil:
print("two is nil")
default:
print("\(one) and \(two) are valid")
}

最佳答案

你可以像这样使用 Swift switch:

switch (one, two) {
case (nil, nil):
print("neither are valid")
case (nil, _?):
print("one is nil")
case (_?, nil):
print("two is nil")
default:
print("\(one) and \(two) are valid")
}

关于ios - 在 Swift 3 或 4 中检查 if 条件矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45990385/

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