如何在 Swift 中的英镑符号字符串中应用空格?
How to apply whitespaces in pound signed string in Swift?
Swift 5 提出了一种额外的新方法来声明字符串文字,即使用 #
符号(在开始和结束引号之前)来声明字符串而不用担心 反斜杠和引号.
(参考:https://github.com/apple/swift-evolution/blob/master/proposals/0200-raw-string-escaping.md)
例如:
let string1 = #"\ Hello World"#
print(string1) // => \ Hello World
let string2 = "Hello World #"
print(string2) // => Hello World #
let string3 = ##"#\#\ Hello World #\#\"##
print(string3) // => #\#\ Hello World #\#\
但是,当尝试使用井号来声明包含空格的字符串时,它不起作用。让我们考虑选项卡:
let tabString = #"Hello World\t#"#
print(tabString) // => Hello World\t#
我的预期结果是 Hello World #
但不是 Hello World\t#
。
如何解决使用#
声明时出现的问题?
更新答案:
此时,您可以输入 \#t
。
感谢@dan 对此发表评论。
旧答案:
从逻辑上讲,Hello World\t\
的结果似乎是合乎逻辑的,因为使用#
声明字符串的目的是"literally"将反斜杠作为反斜杠处理,意味着“ \t" 将显示为 "\t"
而不是 " "
.
作为一种变通方法,您可以在这里做的是 插入 字符串中的空格作为不使用井号声明的字符串:
let tabString = #"Hello World \#("\t")#"#
print(tabString) // => Hello World #
请记住,在 #""#
声明的字符串内插值时,您应该在反斜杠后添加 #
(\#("\t")
而不是 \("\t")
)。
Swift 5 提出了一种额外的新方法来声明字符串文字,即使用 #
符号(在开始和结束引号之前)来声明字符串而不用担心 反斜杠和引号.
(参考:https://github.com/apple/swift-evolution/blob/master/proposals/0200-raw-string-escaping.md)
例如:
let string1 = #"\ Hello World"#
print(string1) // => \ Hello World
let string2 = "Hello World #"
print(string2) // => Hello World #
let string3 = ##"#\#\ Hello World #\#\"##
print(string3) // => #\#\ Hello World #\#\
但是,当尝试使用井号来声明包含空格的字符串时,它不起作用。让我们考虑选项卡:
let tabString = #"Hello World\t#"#
print(tabString) // => Hello World\t#
我的预期结果是 Hello World #
但不是 Hello World\t#
。
如何解决使用#
声明时出现的问题?
更新答案:
此时,您可以输入 \#t
。
感谢@dan 对此发表评论。
旧答案:
从逻辑上讲,Hello World\t\
的结果似乎是合乎逻辑的,因为使用#
声明字符串的目的是"literally"将反斜杠作为反斜杠处理,意味着“ \t" 将显示为 "\t"
而不是 " "
.
作为一种变通方法,您可以在这里做的是 插入 字符串中的空格作为不使用井号声明的字符串:
let tabString = #"Hello World \#("\t")#"#
print(tabString) // => Hello World #
请记住,在 #""#
声明的字符串内插值时,您应该在反斜杠后添加 #
(\#("\t")
而不是 \("\t")
)。