Swift 3具有 introduced @discardableResult注释,用于禁用未使用函数返回值的警告的函数. 我正在寻找一种方法来阻止关闭这个警告. 目前,我的代码如下所示: func f(x: Int) - Int - Int { func g(_ y: In
我正在寻找一种方法来阻止关闭这个警告.
目前,我的代码如下所示:
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