2016-06-08 1229 views
6

我正在编写一些代码,用Swift中的双引号处理字符串。以下是我迄今所做的:如何将双引号插入Swift字符串

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

func dealWithString(input: String) { 
    // I placed a breakpoint here. 
} 

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

print input 

这是我得到的:

(String) $R0 = "String with \"Double Quotes\"" 

我得到了这个字符串的反斜杠。但是,如果我试图从源代码中删除反斜杠,它会给我编译错误。有没有解决方法?

+0

它是打印字符串的“REAL”值的调试器。当您在代码中使用变量'input'时,该值将是带有“双引号”的字符串' – ntoonio

+0

因为这是由调试器对字符串进行编码和呈现的方式。价值仍然是正确的,没有斜杠。 –

+1

[如何在内部打印双引号“?](http://stackoverflow.com/questions/30167848/how-to-print-double-quotes-inside) – Patrick

回答

3

你一切正常。反斜杠用作转义字符,以便以您使用它的方式精确地将双引号插入到Swift字符串中。

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

如果您在代码中使用print(input),则会看到您期望的字符串,即扩展转义字符并且没​​有双引号。