我有一个功能
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
不接受ArraySlice
s。我能想到的最好的事情是嵌入stuff
到AnyCollectionType
或其他一些类型擦除的结构中,并将 的参数更改为doStuff
类型擦除的类型。但这似乎不值得付出努力并且非常不雅,我认为不使用inout
会更好。
有人有更好的方法吗?