(Escaped)字符串插值中的双引号(在Swift中)

时间:2015-01-27 08:53:33

标签: string swift escaping

可以在Swift的字符串插值中使用(转义)双引号吗?

let s = "\(n) \(capitalized ? "H" : "h")ours"

产生"Unexpected '"' character in string interpolation(这与documentation中的一个注释一致),但到目前为止我几次试图逃避内部双引号也没有成功。

那么可以在字符串插值中使用(转义)双引号,如果可以,如何使用?

3 个答案:

答案 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。