Swift #5: Caracteres y Strings
Source: Dev.to
Character
Un carácter se representa mediante un número binario que corresponde al índice de un elemento en la tabla Unicode, la cual define los caracteres del sistema.
let letra: Character = "A"
Puedes desplegar la biblioteca de emojis con el atajo Control + Command + Space.
String
Un String es una secuencia de datos de tipo Character. Puedes:
- Reemplazarlo por otro de longitud diferente.
- Concatenar otro
Stringusando el operador+. - Modificar una parte del mismo.
let palabra: String = "Hola"
let oracion = "Hola " + "mundo"
Interpolación
Para concatenar un String con un valor de otro tipo, usa la interpolación:
let manos = 2
let mensaje = "Tengo \(manos) manos" // Tengo 2 manos
Escapando caracteres
Algunos caracteres tienen un significado especial dentro de un String (por ejemplo, " o \).
Para incluirlos literalmente, utiliza secuencias de escape:
| Secuencia | Significado |
|---|---|
\\ | Barra invertida literal (\) |
\" | Comilla doble literal (") |
\t | Tabulación |
\n | Nueva línea (line feed) |
\r | Retorno de carro (carriage return) |
\0 | Carácter nulo |
\u{...} | Carácter Unicode arbitrario |
Raw strings (cadenas “crudas”)
Una raw string permite escribir texto sin necesidad de escapar caracteres especiales como \ o ".
Su sintaxis es #"texto literal"#, donde las comillas externas están envueltas entre signos #.
Uso de # dentro del raw string
Si necesitas incluir un # dentro del contenido, envuelve las comillas con ##:
let ejemplo = ##"Esto incluye un # dentro del texto"##
Escapes dentro de raw strings
Para incluir una secuencia de escape dentro de una raw string, precede la barra invertida con #:
let salto = #"Línea nueva: \#n"#
Interpolación en raw strings
Para interpolar valores, usa la misma cantidad de # que al inicio y al final del raw string:
let nombre = "Ana"
let saludo = ##"Hola \##(nombre)"##
Alternativas para saltos de línea
- Usar la secuencia de escape
\n. - Envolver el
Stringcon tres comillas dobles:
let multilinea = """
Primera línea
Segunda línea
"""