您好,登錄后才能下訂單哦!
本篇內容主要講解“Swift5怎么從原始文本創建字符串”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Swift5怎么從原始文本創建字符串”吧!
前言
從原始文本創建Swift字符串通常很痛苦。正確刪除原始文本中的任何引號或反斜杠字符是一種令人沮喪的練習。隨Xcode 10.2一起發布的Swift 5引入了一種新的語法,使其更容易使用原始文本。
使用字符串文字創建字符串
從文本文本創建字符串時,使用雙引號(")作為起始和結束分隔符,使用反斜杠(\)來轉義特殊字符。例如,要創建一個保留此文本中雙引號的String:
let title1 = "Insert \"title\" here"// Insert "title" here
自定義字符串轉義(Swift 5)
在Swift 5中,SE-0200允許您自定義分隔符和轉義序列。在處理可能包含分隔符或轉義序列的原始文本時,這非常有用。您可以使用一個或多個“ #”字符填充開始,結束和轉義分隔符。這三個例子都產生了相同的結果:
let title2 = #"Insert "title" here"#let title3 = ##"Insert "title" here"##let title4 = ###"Insert "title" here"###// Insert "title" here
請注意,我們現在不需要轉義雙引號,因為它們不再是分隔符。如果我們的原始文本包含我們選擇的分隔符,我們可以使用額外的“ #” 填充:
// raw text is "#Hello#"// start delimiter is ##"// end delimiter is "##let regex1 = ##""#Hello#""##// "#Hello#"
如果我們用一個或多個分隔符填充分隔符#,我們還需要填充反斜杠轉義序列。例如,在插值時:
let name = "Tom"let greeting1 = "Hello \(name)" // Hello Tom
當使用單個填充時,#轉義序列變為\#:
let greeting2 = #"Hello \#(name)"# // Hello Tom
當我們想要保留轉義的原始文本時,自定義分隔符會很有用。例如,從某些JSON創建String時。使用多行字符串文字似乎是一個很好的方法:
let json1 = """{ "colors": ["red","green","blue"], "label": "Insert \"title\" here"}"""
當文本包含引號時,多行字符串文字很方便,但在這種情況下會引入錯誤。問題是編譯器剝離了反斜杠,"title"導致一些無效的JSON:
{ "colors": ["red","green","blue"], "label": "Insert "title" here"}
如果我們使用帶有多行字符串文字的自定義分隔符,我們可以在原始文本中保留轉義序列:
let json2 = #"""{ "colors": ["red","green","blue"], "label": "Insert \"title\" here"}"""#
生成的String帶有保留的原始文本(請注意標題周圍的反斜杠轉義雙引號):
{ "colors": ["red","green","blue"], "label": "Insert \"title\" here"}
到此,相信大家對“Swift5怎么從原始文本創建字符串”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。