现在我有一些如下所示的代码:
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.removingPercentEncoding
is not时有效nil
。
如果你想打印一些东西 if myStr.removingPercentEncoding
is nil
,那么你可以和一个else
:
if let msg = myStr.removingPercentEncoding {
print("msg \(msg)")
} else {
print("msg has no value")
}
这条线完全没用,当myStr.removingPercentEncoding
is时nil
,nil
(右侧??
)被分配给msg
:
let msg: String? = myStr.removingPercentEncoding ?? nil
你为什么不把它变成:
let msg: String = myStr.removingPercentEncoding ?? ""
print("msg \(msg)")