我正在编写一些代码来处理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)
我用反斜杠得到了这个字符串.但是,如果我试图从源中删除反斜杠,它将给我编译错误.这有解决方法吗?
较新版本的 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 的扩展字符串分隔符中阅读有关此内容的更多信息。
你做的一切都是正确的。反斜杠用作转义字符,以按照您使用的方式将双引号精确插入 Swift 字符串。
问题是调试器。它不是打印字符串的实际值,而是将值打印为字符串文字,即用双引号括起来,所有特殊字符都正确转义。
如果你print(input)在你的代码中使用,你会看到你期望的字符串,即扩展了转义字符并且它们周围没有双引号。
| 归档时间: |
|
| 查看次数: |
4139 次 |
| 最近记录: |