雨燕2.0增加do {} catch {}
可以像这样使用:什么是Swift的catch块前面的_下划线?
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(params, options: []);
} catch let jsonError as NSError {
print(jsonError);
}
,但我也看到了,在我的2.0转换类用下划线实施渔获:
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(params, options: []);
} catch _ {
}
什么使得它特别令人困惑的是为什么不只是提供完全没有问题的渔获之后:
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(params, options: []);
} catch {
}
什么是下划线_
,我能用它做什么,我将如何在我自己的函数签名中实现它?在之前的Swift 1.2声明中,我没有使用NSError
,所以转换抛出错误但为什么使用_
是合理的?
@Aaron Brager如果你仔细阅读这两个问题,你会发现它们实际上没有关系,我的问题不是关于方法签名。 – Shizam
想必它只是意味着你没有分配任何名称给你所捕获的错误,因此不会声明它。如果你实际上不想对catch块中的错误做任何事情,那么这可能更可取。 – myles
@myles多数民众赞成在我的想法,但如果是这种情况,你可以不提供任何东西后的catch语句,即它只是说'catch {'那么为什么它会转换为具有'_'? – Shizam