swift - 小于或大于 Swift switch 语句

标签 swift switch-statement

我熟悉 Swift 中的 switch 语句,但想知道如何用 switch 替换这段代码:

if someVar < 0 {
    // do something
} else if someVar == 0 {
    // do something else
} else if someVar > 0 {
    // etc
}

最佳答案

这是一种方法。假设 someVarInt 或其他 Comparable,您可以选择将操作数分配给新变量。这使您可以使用 where 关键字随意确定其范围:

var someVar = 3

switch someVar {
case let x where x < 0:
    print("x is \(x)")
case let x where x == 0:
    print("x is \(x)")
case let x where x > 0:
    print("x is \(x)")
default:
    print("this is impossible")
}

这可以简化一点:

switch someVar {
case _ where someVar < 0:
    print("someVar is \(someVar)")
case 0:
    print("someVar is 0")
case _ where someVar > 0:
    print("someVar is \(someVar)")
default:
    print("this is impossible")
}

您还可以通过范围匹配完全避免使用 where 关键字:

switch someVar {
case Int.min..<0:
    print("someVar is \(someVar)")
case 0:
    print("someVar is 0")
default:
    print("someVar is \(someVar)")
}

关于swift - 小于或大于 Swift switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41876281/

相关文章:

iOS 模拟器自定义位置问题

html - UILabel sizetofit 隐藏了属性文本中的一些单词

ios - 无法将正确的图像传递给 uitableviewcell

java - 带字符串的 switch 不仅仅是语法糖吗?

sql - 如何在vb.net中使用Switch语句 Access access数据库

ios - 无法使用类型为 'animateWithDuration' 的参数列表调用 '(...)'

ios - iOS 上的 PJSIP,编译器错误 "undeclared type ` pj_thread_t`"

c++ - 简单的C++对话

Java/Android : virtual dispatch, switch-case,或数组访问

Java:在子类下使用带有枚举的switch语句