我可以在字符串插值表达式中写文字吗?如何实现?
"物品数量:\(items > 0 ? items :
"零"
)"
"Number of items: " + (items > 0 ? "\(items)" : "zero")
let nOfItems = items > 0 ? "\(items)" : "zero"
"Number of items: \(nOfItems)"
var items = 0
let formatString = { () -> String in
let expression = { () -> String in
return items > 0 ? String(items) : "zero"
}
return "Number of items: \(expression())"
}
formatString() // returns "Number of items: zero"
items = 12
formatString() // returns "Number of items: 12"
lazy var
,虽然在这种特定情况下它似乎并不是一个大问题。 - Gabriele Petronella现在使用Swift 2.1(自Xcode 7 beta 3以来)可以正常工作。
从发布说明中可以看到:
字符串插值表达式现在可以包含字符串字面量。
您的示例现在是有效的:
let result = "Number of items: \(items > 0 ? String(items) : "zero")"
"\(items)"
,否则它们将无法正常工作。 - vacawama