Swift切换语句可以在一个案例中有另一个开关吗?

时间:2016-02-17 21:27:23

标签: swift switch-statement

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

2 个答案:

答案 0 :(得分:10)

当然可能

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")
  }
}

答案 1 :(得分:1)

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

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")

}