【问题标题】:How can I write an empty case in Swift?如何在 Swift 中编写一个空案例?
【发布时间】:2020-08-03 20:18:57
【问题描述】:

由于 swift 不会通过 switch 中的 case 语句,我如何编写一个空的 case 语句而不会出错?

let a = 50
switch a {
case 0..10:
case 10..100:
    println("between 10 and 100")
default:
    println("100 and above")
}

如何让第一个案例停止切换?

【问题讨论】:

    标签: swift


    【解决方案1】:
    let a = 50
    switch a {
    case 0..10:
        break // Break the switch immediately
    case 10..100:
        println("between 10 and 100")
    default:
        println("100 and above")
    }
    

    关键字break 是可选的,但在这种情况下 :)

    【讨论】:

    • 这是正确答案。来自The Swift Programming Language (Swift 2.2):“因为 Swift 的 switch 语句是详尽无遗的并且不允许空案例,所以有时需要故意匹配并忽略一个案例以使您的意图明确。您可以通过将 break 语句编写为整个主体来做到这一点您想忽略的情况。”
    【解决方案2】:

    为了防止错误:

    switch 中的 case 标签应该至少有一个可执行语句

    ... 在 case 标签中使用 (),如下例所示。也适用于default 标签。

    let a = 1
    switch a {
    case 1:
        ()
    case 2:
        println("2")
    default:
        ()
    }
    

    【讨论】:

    • 求学习,()语句运行后是什么情况?我的意思是 Swift 语言的 () 语句的相等性是什么。是休息还是类似的事情?
    • 这是一个空元组。我猜它不会像其他文字那样产生警告,这也会起作用,因为编译器可能具有处理空函数参数列表的逻辑,例如。
    猜你喜欢
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    相关资源
    最近更新 更多