Qualcuno può dirmi come posso stampare qualcosa nel modo seguente "con" virgolette doppie.
"Virgolette"
String
un'istanza che contiene virgolette doppie.
Qualcuno può dirmi come posso stampare qualcosa nel modo seguente "con" virgolette doppie.
"Virgolette"
String
un'istanza che contiene virgolette doppie.
Risposte:
Con una barra rovesciata prima delle virgolette doppie che vuoi inserire nella stringa:
let sentence = "They said \"It's okay\", didn't they?"
Adesso sentence
è:
Hanno detto "Va tutto bene", no?
Si chiama "sfuggire" a un carattere: stai usando il suo valore letterale, non verrà interpretato.
Con Swift 4 puoi in alternativa scegliere di utilizzare il """
delimitatore per il testo letterale in cui non è necessario sfuggire:
let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""
Questo da:
Hanno detto "Va tutto bene", no?
Sì, "va bene" è quello che hanno detto.
Con Swift 5 puoi utilizzare delimitatori avanzati:
I valori letterali stringa possono ora essere espressi utilizzando delimitatori avanzati . Una stringa letterale con uno o più segni numerici (#) prima delle virgolette di apertura considera le barre rovesciate e le virgolette doppie come letterali a meno che non siano seguite dallo stesso numero di segni numerici. Utilizzare delimitatori avanzati per evitare ingombri di stringhe letterali che contengono molte virgolette doppie o barre rovesciate con caratteri di escape extra.
La tua stringa ora può essere rappresentata come:
let sentence = #"They said "It's okay", didn't they?"#
E se vuoi aggiungere una variabile alla tua stringa dovresti aggiungere anche #
dopo la barra rovesciata:
let sentence = #"My "homepage" is \#(url)"#
Per completezza, da documenti Apple :
I valori letterali stringa possono includere i seguenti caratteri speciali:
- I caratteri speciali di escape \ 0 (carattere nullo), \ (barra rovesciata), \ t (tabulazione orizzontale), \ n (avanzamento riga), \ r (ritorno a capo), \ "(virgolette doppie) e \ '(virgolette singole)
- Uno scalare Unicode arbitrario, scritto come \ u {n}, dove n è un numero esadecimale da 1 a 8 cifre con un valore uguale a un punto di codice Unicode valido
il che significa che oltre a poter eseguire l'escape del carattere con la barra rovesciata, puoi utilizzare il valore unicode. Le seguenti due affermazioni sono equivalenti:
let myString = "I love \"unnecessary\" quotation marks"
let myString = "I love \u{22}unnecessary\u{22} quotation marks"
myString
ora conterrebbe:
Amo le virgolette "inutili"
In base alle tue esigenze, puoi utilizzare uno dei 4 schemi seguenti per stampare uno Swift String
che contenga virgolette doppie.
I valori letterali stringa possono includere caratteri speciali come \"
:
let string = "A string with \"double quotes\" in it."
print(string) //prints: A string with "double quotes" in it.
I valori letterali stringa possono includere un valore scalare Unicode scritto come \u{n}
:
let string = "A string with \u{22}double quotes\u{22} in it."
print(string) //prints: A string with "double quotes" in it.
Il linguaggio di programmazione Swift / stringhe e caratteri afferma:
Poiché i valori letterali stringa su più righe utilizzano tre virgolette doppie invece di uno solo, è possibile includere un segno di virgolette doppie (
"
) all'interno di un valore letterale stringa su più righe senza eseguire l'escape.
let string = """
A string with "double quotes" in it.
"""
print(string) //prints: A string with "double quotes" in it.
Il linguaggio di programmazione Swift / stringhe e caratteri afferma:
È possibile inserire una stringa letterale all'interno di delimitatori estesi per includere caratteri speciali in una stringa senza richiamarne l'effetto. Metti la tua stringa tra virgolette (
"
) e la circondi con segni numerici (#
). Ad esempio, la stampa della stringa letterale#"Line 1\nLine 2"#
stampa la sequenza di escape di avanzamento riga (\n
) invece di stampare la stringa su due righe.
let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.