У меня есть функцияКак вы передаете кусок массива функции inout? Type-стирание?
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
с. Самое лучшее, что я могу придумать, - вставить stuff
в AnyCollectionType
или какую-то другую стираемую структуру и изменить аргументы doStuff
на тип типа. Но это вряд ли стоит усилий и очень неэлегантных, я думаю, что просто не использовать inout
было бы лучше.
У кого-нибудь есть лучший способ?
Вы могли бы бросить кусочек в массив ... Вы можете иметь 'doThing' взять' _ArrayType' ... Действительно, не зная, что 'doThing '_does_, трудно быть полезным. Зачем нужно использовать 'inout [Int]'? – matt