0

例如:

原始字符串

let str1 = #"The "swift 5" has abiliy to create raw strings."#

普通字符串

let str2 = "The \"swift 5\" has abiliy to create raw strings."

只是语法上的差异吗?

引入的原始字符串是否仅用于在双引号的情况下添加大量反斜杠

4

2 回答 2

4

SE-0200引入了原始字符串。来自Paul Hudson 关于“如何在 Swift 5 中使用原始字符串”的文章(强调我的):

Swift 5 让我们能够使用井号 指定自定义字符串分隔符#有时也称为井号标签或井号。当您使用#字符串时,它会影响 Swift 理解字符串中特殊字符的方式:\不再充当转义字符,因此\n字面意思是反斜杠,然后是“n”而不是换行符,并且\(variable)将作为这些字符包含在内,而不是而不是使用字符串插值。

所以,这两个字符串是相同的:

let normalString = "\\Hello \\World"
let rawString = #"\Hello \World"#

更多信息:自定义字符串转义

于 2019-03-29T07:13:48.170 回答
1

摘自Cosmin Pupăză 的文章“Swift 5 有什么新功能?”

Swift 4.2 使用转义序列来表示字符串中的反斜杠和引号:

let escape = "You use escape sequences for \"quotes\"\\\"backslashes\" in Swift 4.2."
let multiline = """
                You use escape sequences for \"\"\"quotes\"\"\"\\\"\"\"backslashes\"\"\"
                on multiple lines
                in Swift 4.2.
                """

Swift 5 添加了原始字符串。您#在字符串的开头和结尾添加,这样您就可以毫无问题地使用反斜杠和引号。[ SE-0200 ]:

let raw = #"You can create "raw"\"plain" strings in Swift 5."#
let multiline = #"""
                You can create """raw"""\"""plain""" strings
                on multiple lines
                in Swift 5.
                """#

更多详情

于 2019-03-29T07:18:07.407 回答