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

(Escaped) double quotes in string interpolations (in Swift)

能否在 Swift 中的字符串插值中使用(转义)双引号?

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

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

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

您可以使用 \ 转义字符,但我认为您不能在字符串插值中以这种方式使用三元运算符。 所以我建议把capitalized ? "H" : "h"放在一个变量里,然后就可以了。

已更新

可以在字符串插值中使用三元运算符,但不能在其中使用字符串文字,所以应该将整个表达式放在一个变量中,或者大写和小写h。

@Daniel 的回答很好,但在您的情况下,您可以使用内置的 capitalizedString 方法。

let s =  "hours".capitalizedString

let s =  "\n hours".capitalizedString

此方法将每个单词的首字母大写。 编辑:

let s =  (capitalized ? "hours".capitalizedString : "hours")

自Swift 2.1我们可以在插值时使用双引号,所以原来的代码现在可以了。