【发布时间】:2023-02-06 00:23:43
【问题描述】:
我在我的 Swift 代码中使用 NSRegularExpression,因为它需要在旧平台上运行。工厂方法抛出错误,所以我们需要捕获错误——这确实发生在我的代码中(我输入了一些疯狂的模式)。我称之为使用:
let regex: NSRegularExpression
do {
regex = try NSRegularExpression(pattern: pattern, options: [.caseInsensitive])
} catch {
return false
}
对于处理可选值,Swift 提供了 guard let 模式,这使得这一点更加清晰和自我记录,因为它将变量暴露给封闭范围并单行逻辑。 guard case 也很有用。 throws 有一些类似的语法糖吗?
【问题讨论】:
-
不确定“清洁工”是什么意思,do/catch 有什么问题?如果您不关心这个错误,您可以将
if let或guard与try?一起使用。