Swift 中是否有与 Scala 的原始字符串或 C# 中的逐字字符串文字等效的功能?
没有转义字符的原始字符串示例(语法不正确):
val secretKey = """long\^578arandom&61~8791escaped&*^%@(chars"""
Run Code Online (Sandbox Code Playgroud)
我试过简单地掌握语言文档,但还没有找到功能等效的东西。
小智 7
Swift 5 现在支持原始字符串。使用此功能,反斜杠和引号被解释为它们各自的文字符号。它们不被视为原始字符串中的转义字符或字符串终止符。
要使用原始字符串,使用# 符号(与python 使用'r' 或'R' 相同)。以下是在 swift 5 中使用原始字符串的变体数量:
let myPets = #"The name of my dog is "barky" and my cat is "smily"."#
//The name of my dog is "barky" and my cat is "smily".
Run Code Online (Sandbox Code Playgroud)
原始字符串的内部 # 用于字符串插值,而不是通常的 swift 反斜杠。
let val = 1
let result = #"The answer is \#(val)."#
//The answer is 1
Run Code Online (Sandbox Code Playgroud)
如果要在原始字符串中使用 #,请将 ## 放在开头和结尾。
let str = ##"I am happy bla#blablabla"##
//"I am happy bla#blablabla"
Run Code Online (Sandbox Code Playgroud)
我猜原始字符串将有助于正则表达式,正则表达式定义中的反斜杠较少。例如:
let regex_Prev = "\\\\[A-Z]+[A-Za-z]+\\.[a-z]+"
Run Code Online (Sandbox Code Playgroud)
现在我们可以写:
let regex_Swift5version = #"\\[A-Z]+[A-Za-z]+\.[a-z]+"#
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3565 次 |
| 最近记录: |