próbuję wykonać iterację tablicy i zsumować wszystkie wartości za pomocą rodzajowych tak:Problemy podsumowujące tablicę używając pętli w szybkim
func reduceDaArray <T, U>(a: [T], startingValue: U, summed: (U, T) -> U) -> U {
var sum = 0
for number in a {
sum = sum + number
}
return sum
}
reduceDaArray([2,3,4,5,6], 2, +) //(22)
To daje mi następujące błędy:
Binary operator '+' cannot be applied to operands of type 'Int' and 'A'
w odniesieniu do linii sum = sum + number
i
Int is not convertible to 'U'
z odniesieniu do linii return sum
Wiem, że jest to lepsze dzięki metodzie redukcji, ale chciałem wykonać zadanie z wykorzystaniem iteracji dla tej instancji, aby uzyskać pewną praktykę. Dlaczego występują te błędy? Nigdy nie powiedziałem wprost, że T jest int.