Swift是一種非常功能的語言,函數式語言都是關於表達式而不是語句,這就是爲什麼開關模式匹配困擾我的原因。在swift中作爲函數表達式的模式匹配
所有的例子都是這樣的:
switch x {
case > 0:
print("positive")
case < 0:
print("negative")
case 0:
print("zero")
}
但我想要做這樣的事情:
let result = switch x {
case > 0:
"positive"
case < 0:
"negative"
case 0:
"zero"
}
目前我能看到這樣做的唯一途徑是:
var result: String?
switch x {
case > 0:
result = "positive"
case < 0:
result = "negative"
case 0:
result = "zero"
}
if let s = result {
//...
}
這顯然沒有像'基於表達式'的switch語句那樣優雅。是否有任何解決辦法或替代方案,或蘋果公司需要做些什麼來增強語言?
類似的問題在這裏:http://stackoverflow.com/questions/27315698/assign-conditional-expression-in-swift。 –
請注意,在上例中,您不需要可選項,您可以聲明'let result:String'。在使用變量之前,編譯器驗證一個值賦給它*。 –
感謝馬丁我不知道 –