2

我正在尝试将 \"> 存储在字符串中。理论上,“\\”应该打印 \ 而“\””确实打印“。但是,当我尝试使用 \ 在字符串中打印 \ 时,输出是双前向削减:

var str = "\">" 
// ">
var str2 = "\\"
// \\ 
var str3 = "\\\">"
// \\">
var str4 = "\\">"
// escapes after quotation mark (error)
4

3 回答 3

2

str3是对的。例如:

print("\\\">")

打印所需的序列:

\">

您可能会将 Swift Playground 生成的转义输出与实际字符串混淆。如有疑问,请尝试控制台 :)

于 2017-05-19T14:59:05.783 回答
2

答案是str3。参见例如:

var str3 = "\\\">"
str3.characters.forEach {
    print($0)
}

\
"
>

在 Xcode 中输出str3什么本身并不重要,因为 Xcode 可以决定如何显示字符串。例如,它决定显示 的转义字符。它不会前面显示转义符,因为例如在 Playground 中,内部的颜色已经与实际分隔字符串的颜色不同:\"""
在此处输入图像描述

于 2017-05-19T15:01:08.383 回答
1

操场输出是错误的(或者我不明白)。print()虽然给你正确的输出:

var str3 = "\\\">"  // Plaground output:  \\">
print(str3)

印刷:\">

于 2017-05-19T15:02:15.290 回答