func getIndex<T: Equatable>(valueToFind: T) -> Int? {...}
mutating func replaceObjectWithObject<T: Equatable>(obj1: T, obj2: T) {
if let index = self.getIndex(obj1) {
self.removeAtIndex(index)
self.insert(obj2, atIndex: index) // Error here: 'T' is not convertible to 'T'
}
}
Mam tę funkcję, która ma zastąpić element innym elementem. Ale nie jestem bardzo zaznajomiony z Generics
i nie wiem, dlaczego to nie działa. Proszę pomóż.Swift Array.insert generics
jeśli usunąć Equatable od mutacji func komunikat o błędzie skacze do pierwszej linii w tej func i gdybym wówczas zastąpi że z func find()
który daje mi ten sam błąd, jak na linii 3.
można zapewnić realizację 'metody insert', lub przynajmniej jego podpis? – Antonio
nvm ... Rozumiem to - to rozszerzenie 'Array', prawda? – Antonio
Nieco styczny, ale ten komunikat o błędzie jest mylący, ponieważ 'Tablica' używa T jako swojego ogólnego podtypu.Mówi się, że 'T' (typ ogólny dla tej funkcji) nie jest konwertowalny na' T' (typ ogólny dla tablicy). Jeśli zmienisz podpis metody na "U" zamiast "T", będzie to bardziej przejrzyste. –