gpt4 book ai didi

swift - 从数组中删除闭包

转载 作者:IT王子 更新时间:2023-10-29 05:53:46 25 4
gpt4 key购买 nike

从数组中删除闭包但不使用它会导致编译器错误“表达式解析为未使用的函数”。除了将函数分配给一次性变量之外,是否有避免这种情况的好方法?

typealias StringFunction = () -> String  
var list = [StringFunction]()
list.append({ "Hello World!" })
let hi = list[0]() // "Hello World!"
list.removeAtIndex(0) // Expression resolves to an unused function
let _ = list.removeAtIndex(0) // Works

最佳答案

将表达式的结果赋给一次性变量正确的做法。事实上,这是 Swift 中处理未使用结果的惯用方式。

因此(如另一个答案的评论中所述)正确的解决方案是:

typealias StringFunction = () -> String
var list = [StringFunction]()
list.append({ "Hello World!" })
let hi = list[0]()
_ = list.remove(at: 0) // Note there's no need for `let`

这样做不仅可以让您的代码更清楚地表明您的意图(即表明您绝对不需要该方法的结果),还可以帮助编译器执行各种有用的优化。

关于swift - 从数组中删除闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30625594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com