Я делаю первые шаги в Swift и получил первую проблему. Я пытаюсь передать массив по ссылке с помощью inout
на общую функцию с ограничениями.Swift: inout с универсальными функциями и ограничениями
Во-первых, моя начальная точка приложения:
import Foundation
let sort = Sort()
sort.sort(["A", "B", "C", "D"])
А вот мой класс с реальной проблемой:
import Foundation
class Sort {
func sort<T:Comparable>(items:[T]){
let startIndex = 0
let minIndex = 1
exchange(&items, firstIndex: startIndex, secondIndex: minIndex)
}
func exchange<T:Comparable>(inout array:[T], firstIndex:Int, secondIndex:Int) {
// do something with the array
}
}
Я получаю следующее сообщение об ошибке в Xcode на линии вызова exchange
:
Cannot convert value of type '[T]' to expected argument type '[_]'
Я чего-то не хватает?
Обновление: Добавлен полный код проекта.
возможно постить реальный код, который дает ошибку .... –
I добавлен полный код проекта. Функция обмена фактически ничего не делает с массивом, поэтому это минимальный пример. – shadowhorst