使用let _ = …是否有任何目的?
我已经看到了What’s the _ underscore representative of in Swift References?的问题和答案,我知道下划线can be used to represent a variable that isn’t needed.
如果我只需要一个元组的值,就像上面链接中的示例一样,这是有意义的:
let (result,_) = someFunctionThatReturnsATuple()
但是,我最近遇到了this code:
do { let _ = try DB.run( table.create(ifNotExists: true) {t in t.column(teamId,primaryKey: true) t.column(city) t.column(nickName) t.column(abbreviation) }) } catch _ { // Error throw if table already exists }
如果我删除let _ =,我不会收到任何编译器警告或错误.在我看来,这样更简单,更易读.
try DB.run( table.create(ifNotExists: true) {t in t.column(teamId,primaryKey: true) t.column(city) t.column(nickName) t.column(abbreviation) })
该代码的作者写了a book and a blog about Swift.我知道作者不是绝对正确的,但它让我想知道是否有我遗漏的东西.
解决方法
如果方法已使用
developer documentation中的warn_unused_result标记,您将收到编译器警告:
Apply this attribute to a method or function declaration to have the compiler emit a warning when the method or function is called without using its result.
You can use this attribute to provide a warning message about incorrect usage of a nonmutating method that has a mutating counterpart.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。