这个问题已经有了答案:
Propagate an optional through a function (or Init) in Swift
1个答案
我有一个具有可选zoomurl属性的类let zoomURL : String?
我一直在玩可选的链接,试图缩短我的零支票数量。我知道下面我可以很容易地检查let zoomURLString = meeting.zoomURL
是否可以,但是否可以跳过此步骤,并立即将其用作函数中的参数,然后检查此函数是否为零?
例如:(失败)
if let parsedZoomURL = URL(string: meeting.zoomURL?){
//do stuff
}
最佳答案
您可以使用
public func flatMap<U>(_ transform: (Wrapped) throws -> U?) rethrows -> U?
Optional
方法:if let parsedZoomURL = zoomURL.flatMap( { URL(string: $0) }) {
//do stuff
}
或更短(如某人在一篇现已删除的评论中所注意到的那样):
if let parsedZoomURL = zoomURL.flatMap(URL.init) {
//do stuff
}
只有当
zoomURL
不是nil
和闭包(然后用未包装的值调用
不返回。
关于swift - 我可以通过使用它作为参数来检查 optional 项是否为nil? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43866581/