可以在Swift的字符串插值中使用(转义)双引号吗?
let s = "\(n) \(capitalized ? "H" : "h")ours"
产生"Unexpected '"' character in string interpolation
(这与documentation中的一个注释一致),但到目前为止我几次试图逃避内部双引号也没有成功。
那么可以在字符串插值中使用(转义)双引号,如果可以,如何使用?
答案 0 :(得分:2)
自Swift 2.1以来,我们可以在插值时使用双引号,因此原始代码现在可以正常工作。
答案 1 :(得分:1)
@Daniel答案很好,但在你的情况下你可以使用内置的capitalizedString方法。
let s = "hours".capitalizedString
或
let s = "\n hours".capitalizedString
此方法将每个单词的首字母大写。 编辑:
let s = (capitalized ? "hours".capitalizedString : "hours")
答案 2 :(得分:0)
你可以使用\来转义字符,但我认为你不能在字符串插值中使用这种方式使用三元运算符。
所以我建议将capitalized ? "H" : "h"
放在变量中,然后它就可以了。
<强>已更新强>
你可以在字符串插值中使用三元运算符,但你不能在那里使用字符串文字,所以你应该将整个表达式放在一个变量,或者大写和小写h。