【问题标题】:Can Swift switch statements have another switch in a case?Swift switch 语句可以在 case 中有另一个 switch 吗?
【发布时间】:2016-02-17 21:27:22
【问题描述】:

我查看了 Apple 的所有文档,以及多个最终用户博客和类似的文档……但没有一个 switch 语句在 case 中包含多行的示例,更不用说另一个 @ 987654323@。我尝试了几种不同的语法,但不行,它总是抱怨未使用的闭包。这可能吗?

【问题讨论】:

  • 请问您能出示您的代码吗?

标签: swift switch-statement


【解决方案1】:

当然可以

enum Alphabet {
  case Alpha, Beta, Gamma
}

enum Disney {
  case Goofy, Donald, Mickey
}

let foo : Alphabet = .Beta
let bar : Disney = .Mickey

switch foo {
case .Alpha, .Gamma: break
case .Beta:
  switch bar {
  case .Goofy, .Donald: break
  case .Mickey: print("Mickey")
  }
}

【讨论】:

  • 是的。关键是花括号。
  • 不,不是。我不确定它是什么,但在某处存在某种语法问题。我所做的只是重新排列线条,甚至没有编辑它们,然后突然就奏效了。
【解决方案2】:

是的,嵌套的switch语句和case中的多行都是可能的。

let firstNumber = 0
let secondNumber = 3

switch firstNumber {

case 0:

    switch secondNumber {

    case 0:
        print("First and second numbers are 0")
    default:
        print("First number is 0, second number is not")

    }

default:

    print("First number is not 0")

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多