如何将双引号放入Swift String

Tom*_*hen 6 string swift

我正在编写一些代码来处理Swift中带双引号的字符串.这是我到目前为止所做的:

func someMethod {
    let string = "String with \"Double Quotes\""
    dealWithString(string)
}

func dealWithString(input: String) {
    // I placed a breakpoint here.
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,断点像往常一样停在那里但是当我将以下内容输入调试器时:

print input
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

(String) $R0 = "String with \"Double Quotes\""
Run Code Online (Sandbox Code Playgroud)

我用反斜杠得到了这个字符串.但是,如果我试图从源中删除反斜杠,它将给我编译错误.这有解决方法吗?

Ste*_*sen 8

较新版本的 Swift 支持备用分隔符语法,使您可以嵌入特殊字符而无需转义。#在开盘价和收盘价前后添加一个或多个符号,如下所示:

#"String with "Double Quotes""#
Run Code Online (Sandbox Code Playgroud)

但要小心,因为其他常见的转义#也需要这些额外的符号。

#"This is not a newline: \n"#
#"This is a newline: \#n"#
Run Code Online (Sandbox Code Playgroud)

您可以在 swift.org 的扩展字符串分隔符中阅读有关此内容的更多信息。


das*_*ght 7

你做的一切都是正确的。反斜杠用作转义字符,以按照您使用的方式将双引号精确插入 Swift 字符串。

问题是调试器。它不是打印字符串的实际值,而是将值打印为字符串文字,即用双引号括起来,所有特殊字符都正确转义。

如果你print(input)在你的代码中使用,你会看到你期望的字符串,即扩展了转义字符并且它们周围没有双引号。