2015-05-11 14 views

risposta

103

Con una barra rovesciata prima le virgolette che si desidera inserire nella stringa:

let sentence = "They said \"It's okay\", didn't they?" 

Ora sentence è:

hanno detto "Va bene" , non è vero?

Si chiama "escaping" un carattere: si sta utilizzando il suo valore letterale, non verrà interpretato.


Con Swift 4 in alternativa è possibile scegliere di utilizzare il delimitatore """ per il testo letterale in cui non c'è bisogno di fuggire:

let sentence = """ 
They said "It's okay", didn't they? 
Yes, "okay" is what they said. 
""" 

Questo dà:

hanno detto " Va bene ", vero?
Sì, "ok" è quello che hanno detto.

15

Per completezza, da Apple docs:

letterali stringa possono includere i seguenti caratteri speciali:

  • scampato caratteri speciali \ 0 (carattere nullo), \ (backslash), \ t (scheda orizzontale), \ n (avanzamento riga), \ r (ritorno a capo), \ "(doppia quota ) e \ '(preventivo singolo)
  • Una scala Unicode arbitraria ar, scritto come \ u {n}, dove n è un numero esadecimale 1-8 cifre con un valore pari a un codice Unicode valido punto

che significa che oltre ad essere in grado di sfuggire carattere con barra rovesciata, è possibile utilizzare il valore unicode. Due istruzioni seguenti sono equivalenti:

let myString = "I love \"unnecessary\" quotation marks" 
let myString = "I love \u{22}unnecessary\u{22} quotation marks" 

myString sarebbe ora contenere:

amo virgolette "inutili"

Problemi correlati