用于打印或控制台打印的不同值

时间:2018-12-10 18:04:08

标签: swift xcode

我对开发iOS应用程序功能时看到的行为感到好奇,我想知道是否有人知道原因。

我有一个要编码的Codable对象

let encoded = try encoder.encode(featureEnvelope)

在此之后,我将得到如下所示的打印件和一个断点: print(String(data: encoded, encoding: .utf8)!)

在端点上,我执行以下操作: po String(data: encoded, encoding: .utf8)!

两个表达式的结果略有不同: 用于打印: {"boost_share_link":{"enable":true}}

,然后打印: "{\"boost_share_link\":{\"enable\":true}}"

为什么控制台显示转义字符? 正确哪一个是正确的?

谢谢!

1 个答案:

答案 0 :(得分:1)

print显示String的值。

po将值显示为String文字。注意前导和尾随引号。由于它是字符串文字,因此某些字符(例如其他引号)需要转义。

两者都是正确的。

但是您通常会认为print的输出是正确的输出,因为该字符串实际上并不包含\字符或前后引号