¿Se pueden usar comillas dobles (escapadas) en una interpolación de cadenas en Swift?

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

Produce "Unexpected '"' character in string interpolation (que está en línea con una NOTA en el documentación), pero tampoco he tenido éxito con varios intentos de escapar de las comillas dobles internas hasta ahora.

Entonces, ¿se pueden usar comillas dobles (escapadas) en interpolaciones de cadenas y, de ser así, cómo?

1
Drux 27 ene. 2015 a las 11:53

3 respuestas

La mejor respuesta

La respuesta de @Daniel es buena, pero en su caso podría usar el método incorporado capitalizedString.

let s =  "hours".capitalizedString

O

let s =  "\n hours".capitalizedString

Este método escribe en mayúscula la primera letra de cada palabra. Editar:

let s =  (capitalized ? "hours".capitalizedString : "hours")
1
LastMove 27 ene. 2015 a las 09:35

Puede escapar caracteres con \, pero creo que no podría usar el operador ternario de esta manera en la interpolación de cadenas. Así que sugeriría poner capitalized ? "H" : "h" en una variable, y luego funcionará.

ACTUALIZADO

Puede usar el operador ternario en la interpolación de cadenas, pero no puede usar literales de cadena allí, por lo que debe poner la expresión completa en una variable, o la h mayúscula y minúscula.

0
Dániel Nagy 27 ene. 2015 a las 09:17

Desde Swift 2.1 podemos usar comillas dobles al interpolar, por lo que el código original ahora funciona.

2
Antonio Favata 24 nov. 2015 a las 11:57