gpt4 book ai didi

swift - Swift 中的 Guard 声明

转载 作者:搜寻专家 更新时间:2023-11-01 06:10:51 26 4
gpt4 key购买 nike

我正在努力在 Swift 中使用 guard 语句

下面是为了强制解包而设计的

let pages = content.allpages?.pages?.compactMap{ $0.page?.html }
let titles = content.allpages?.pages?.compactMap{ $0.page?.title }

guard pages != nil && titles != nil else { let error = NSError(domain: "", code: -300, userInfo: [:]);
observer.onError(error); return }
let both = Array(zip(pages!, titles!))

它有效,但我想做类似的事情

guard let pages = content.allpages?.pages?.compactMap{ $0.page?.html }, titles = content.allpages?.pages?.compactMap{ $0.page?.title } else {return}

但是不能,关于在闭包中使用自主参数的一些错误?

为什么?

最佳答案

由于某些实现困难,guard 语句中不允许使用尾随闭包语法。

我会这样写:

guard let pages = content.allpages?.pages?.lazy.compactMap({ $0.page }) else {
observer.onError(NSError(domain: "", code: -300, userInfo: [:]))
return
}

let pageHTMLs = pages.compactMap { $0.html }
let pageTitles = pages.compactMap { $0.title }
let both = Array(zip(pages, titles))

关于swift - Swift 中的 Guard 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com