这个问题已经有了答案:
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/

10-10 20:53