2015-05-11 16 views

Odpowiedz

103

Z backslash przed podwójny cudzysłów chcesz wstawić w ciągu:

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

Teraz sentence jest:

Mówili "Jest w porządku" , prawda?

Nazywa się "ucieczką" postaci: używasz jej wartości dosłowności, nie będzie ona interpretowana.


Z Swift 4 można alternatywnie wybrać stosowanie """ separator do dosłownego tekstu, w którym nie ma potrzeby, aby uciec:

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

Daje:

Mówili " Wszystko w porządku ", nieprawdaż?
Tak, "w porządku" jest to, co powiedzieli.

15

Dla kompletności, od Apple docs:

literały łańcuchowe może zawierać następujące znaki specjalne:

  • znaki o specjalnych \ 0 (null znaków) \ (backslash) \ t (zakładka pozioma), \ n (posuw w wierszu), \ r (powrót karetki), \ "(podwójny cytat ) i \ '(pojedynczy cytat)
  • Dowolna skala w kodzie Unicode Ar zapisać jako \ u {n}, gdzie n jest 1-8 cyfra liczby szesnastkowe o wartości równej prawidłowy kod Unicode punkt

co oznacza, że ​​oprócz tego, że w stanie uciec znak z odwrotnym ukośnikiem, możesz użyć wartości Unicode. Następujące dwa stwierdzenia są równoważne:

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

myString będzie teraz zawierać:

kocham "niepotrzebnych" cudzysłów

Powiązane problemy