Quelqu'un peut-il me dire comment puis-je imprimer quelque chose de la manière suivante "entre" guillemets doubles.
"Double citation"
Avec une barre oblique inverse avant le guillemet double que vous souhaitez insérer dans la chaîne:
let sentence = "They said \"It's okay\", didn't they?"
Maintenant, sentence
est:
Ils ont dit "ça va", n'est-ce pas?
Cela s'appelle "échapper" à un caractère: vous utilisez sa valeur littérale, il ne sera pas interprété.
Avec Swift 4, vous pouvez également choisir d’utiliser le """
_ délimiteur pour le texte littéral où il n’est pas nécessaire de s’échapper:
let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""
Cela donne:
Ils ont dit "ça va", n'est-ce pas?
Oui, "d'accord" est ce qu'ils ont dit.
Avec Swift 5, vous pouvez utiliser des délimiteurs améliorés:
Les littéraux de chaîne peuvent maintenant être exprimés avec délimiteurs améliorés . Un littéral de chaîne avec un ou plusieurs signes numériques (#) avant la citation d'ouverture traite les barres obliques inverses et les caractères de citation double comme des littéraux, à moins qu'ils ne soient suivis du même nombre de signes numériques. Utilisez des délimiteurs améliorés pour éviter d'encombrer les littéraux de chaîne contenant de nombreux caractères de guillemet ou de barre oblique inversée avec des échappements supplémentaires.
Votre chaîne peut maintenant être représentée comme:
let sentence = #"They said "It's okay", didn't they?"#
Et si vous voulez ajouter une variable à votre chaîne, vous devez également ajouter #
après barre oblique inversée:
let sentence = #"My "homepage" is \#(url)"#
Pour être complet, de documentation Apple :
Les littéraux de chaîne peuvent inclure les caractères spéciaux suivants:
- Les caractères spéciaux échappés\0 (caractère nul),\(barre oblique inverse),\t (tabulation horizontale),\n (saut de ligne),\r (retour à la ligne),\"(double guillemet) et\'(guillemet simple)
- Un scalaire Unicode arbitraire, écrit sous la forme\u {n}, où n est un nombre hexadécimal de 1 à 8 chiffres avec une valeur égale à un point de code Unicode valide
ce qui signifie qu'en plus d'échapper au caractère avec une barre oblique inverse, vous pouvez utiliser la valeur unicode. Les deux déclarations suivantes sont équivalentes:
let myString = "I love \"unnecessary\" quotation marks"
let myString = "I love \u{22}unnecessary\u{22} quotation marks"
myString
contiendrait maintenant:
J'aime les guillemets "inutiles"
Selon vos besoins, vous pouvez utiliser l'un des 4 motifs suivants pour imprimer un Swift String
qui contient des guillemets doubles.
Les littéraux de chaîne peuvent inclure des caractères spéciaux tels que \"
:
let string = "A string with \"double quotes\" in it."
print(string) //prints: A string with "double quotes" in it.
Les littéraux de chaîne peuvent inclure une valeur scalaire Unicode écrite sous la forme \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.
Le Le Swift Langage de programmation/Chaînes et Caractères ) == indique:
Les littéraux de chaînes multilignes utilisant trois guillemets doubles au lieu d’un seul, vous pouvez inclure un guillemet double (
"
) à l'intérieur d'un littéral de chaîne multiligne sans y échapper.
let string = """
A string with "double quotes" in it.
"""
print(string) //prints: A string with "double quotes" in it.
Le Le Swift Langage de programmation/Chaînes et Caractères ) == indique:
Vous pouvez placer un littéral de chaîne dans des délimiteurs étendus pour inclure des caractères spéciaux dans une chaîne sans invoquer leur effet. Vous placez votre chaîne entre guillemets (
"
) et entourez-le de signes numériques (#
). Par exemple, l’impression du littéral chaîne#"Line 1\nLine 2"#
imprime la séquence d'échappement de saut de ligne (\n
) plutôt que d’imprimer la chaîne sur deux lignes.
let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.