(转义)字符串插值中的双引号(在 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我们可以在插值时使用双引号,所以原来的代码现在可以了。
能否在 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我们可以在插值时使用双引号,所以原来的代码现在可以了。