我有一个功能
func doThing(inout array: [Int]) { //thing }
我有数组
var stuff = [0,1,2,3,4,5,6]
我只想doThing对前三个元素进行操作。
doThing(&stuff[0..<3])
从那以后不起作用
var partOfStuff: ArraySlice<Int> = stuff[0..<3]
并且doThing不接受ArraySlices。我能想到的最好的事情是嵌入stuff到AnyCollectionType或其他一些类型擦除的结构中,并将 的参数更改为doStuff类型擦除的类型。但这似乎不值得付出努力并且非常不雅,我认为不使用inout会更好。
有人有更好的方法吗?