我不太喜欢可选的if let
语法,我想看看我是否能得到模式匹配的工作。我正在操场上尝试下面的代码,但没有看到println
语句上的任何输出。我做错了什么?
let one:Int? = 1
switch one {
case .Some(let numeral):
println("Caught a (numeral)")
default:
println("Nothing to catch")
}
有点脱离上下文,但是:Playground不打印右列中的println()
语句。您可以再次写入要读取的变量:
...
case .Some(let numeral):
println("Caught a (numeral)")
numeral
...
在这种情况下,您将看到{Some 2}
。
或者您可以打开助理编辑器(视图->助理编辑器->显示助理编辑器),读取Console output
以读取println()
的评估值。
编辑后Xcode 6 beta-5
使用Xcode 6 beta-5,你终于可以println()
,你会看到文本在右列
是的,您可以使用下划线(_)来匹配和忽略任何值。
更简洁的方法是使用if case let,而不是切换。
if case let numeral? = one {
print("Caught a (numeral)")
}
或
if case .Some(let numeral) = one {
print("Caught a (numeral)")
}
要求Swift 2.0