Ale*_*nov 1 closures nsindexset swift
我想{$0 > 1}在调用NSIndexSet类时使用简短形式的闭包:
let indexSet: NSIndexSet = getSomeIndexSet()
let filteredIndexSet = indexSet.indexesPassingTest(){$0 > 1}
Run Code Online (Sandbox Code Playgroud)
但它给了我
无法使用类型为"((_) - > _)"的参数列表调用"indexesPassingTest"
但这有效:indexSet.indexesPassingTest(){(i,s) in i > 1}虽然类型名称仍然不存在.
这是一个错误还是我错过了什么?
错误消息说明你做错了什么.传递给块的参数不是两个不同的参数,而是一个单元参数,它是元组.因此,您必须访问元组中的每个元素.
基于Martin R的评论,似乎闭包必须匹配2个参数.因此,可以使用$ 0或$ 1,或者只使用一个,然后$ 0变为元组.
let filteredIndexSet = indexSet.indexesPassingTest { $0.0 > 20 }
Run Code Online (Sandbox Code Playgroud)
的$ 0.0次指其中是索引元组中的第一个项目.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |