现在我有一些如下所示的代码:
let msg: String? = myStr.removingPercentEncoding ?? nil
print("msg \(msg!)")
我真的不喜欢使用!inmsg!因为这可能会引发异常,我相信。
myStr.removingPercentEncoding如果 myStr 不是 nil 然后解开 msg 而不抛出异常,最好的调用方法是什么?
现在我有一些如下所示的代码:
let msg: String? = myStr.removingPercentEncoding ?? nil
print("msg \(msg!)")
我真的不喜欢使用!inmsg!因为这可能会引发异常,我相信。
myStr.removingPercentEncoding如果 myStr 不是 nil 然后解开 msg 而不抛出异常,最好的调用方法是什么?
正确的方法是:
if let msg = myStr.removingPercentEncoding {
print("msg \(msg)")
}
在这里,msg仅在if语句内部有效且仅在myStr.removingPercentEncodingis not时有效nil。
如果你想打印一些东西 if myStr.removingPercentEncodingis nil,那么你可以和一个else:
if let msg = myStr.removingPercentEncoding {
print("msg \(msg)")
} else {
print("msg has no value")
}
这条线完全没用,当myStr.removingPercentEncodingis时nil,nil(右侧??)被分配给msg:
let msg: String? = myStr.removingPercentEncoding ?? nil
你为什么不把它变成:
let msg: String = myStr.removingPercentEncoding ?? ""
print("msg \(msg)")