在Swift中使用@discardableResult进行闭包
发布时间:2020-12-14 04:37:47 所属栏目:百科 来源:网络整理
导读:Swift 3具有 introduced @discardableResult注释,用于禁用未使用函数返回值的警告的函数. 我正在寻找一种方法来阻止关闭这个警告. 目前,我的代码如下所示: func f(x: Int) - Int - Int { func g(_ y: Int) - Int { doSomething(with: x,and: y) return x*y
Swift 3具有
introduced @discardableResult注释,用于禁用未使用函数返回值的警告的函数.
我正在寻找一种方法来阻止关闭这个警告. 目前,我的代码如下所示: func f(x: Int) -> Int -> Int { func g(_ y: Int) -> Int { doSomething(with: x,and: y) return x*y } return g } 在各个地方,我调用f一次获得一个闭包g然后我再次调用: let g = f(5) g(3) g(7) g(11) 在大多数地方,我只对嵌套调用doSomething的副作用感兴趣,而不是关闭g的返回值.使用Swift 3,我的项目中现在有许多警告用于未使用的结果.有没有办法抑制警告除了将调用g更改为_ = g(…)之外?我找不到可以放置@discardableResult注释的地方. 解决方法
我认为没有办法将该属性应用于闭包.您可以捕获另一个丢弃结果的闭包:
func discardingResult<T,U>(_ f: @escaping (T) -> U) -> (T) -> Void { return { x in _ = f(x) } } let g = f(5) g(3) // warns let h = discardingResult(g) h(4) // doesn't warn (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |