如何在Swift中使用英镑签名字符串中应用空格?

问题描述 投票:1回答:1

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#

使用#声明时如何解决这个问题?

swift string whitespace swift5
1个回答
2
投票

Updated Answer:

此时,您可以将其键入\#t

感谢@dan对此发表评论。


旧答案:

从逻辑上讲,Hello World\t\的结果似乎是合乎逻辑的,因为使用#声明字符串的目的是“逐字地”将反斜杠作为反斜杠处理,意味着“\ t”将显示为"\t"而不是" "

作为一种解决方法,你可以在这里做的是插入字符串中的空格作为声明的字符串,而不使用井号:

let tabString = #"Hello World \#("\t")#"#
print(tabString) // => Hello World     #

请记住,当在#""#声明的字符串内插值时,你应该在反斜杠后添加#\#("\t") not \("\t"))。

© www.soinside.com 2019 - 2024. All rights reserved.