Подскажите пожалуйста, как с дженериком разобраться, компилятор ругается, что "Cannot convert value of type 'String' to expected argument type 'T.T'"
Идея в том, чтобы сделать свой массив и он типа Стринг, и мне туда нужно добавить стринговое значение
Код функции:
func addValues<T: MyArray>(array: T, count: Int) {
// typealias T = String
let start =
DispatchTime.now().uptimeNanoseconds
for index in 0..<count {
array.add(item: String(index)) //Здесь ругается
}
let duration = Double(
DispatchTime.now().uptimeNanoseconds - start) * 0.000000001
print("Add \(count) : \(duration) ms")
}
Код протокола:
import Foundation
protocol MyArray{
associatedtype T
typealias TargetType = T
func size() -> Int
func add(item: TargetType)
func get(index: Int) -> TargetType
func resize(oldArray: [TargetType], delta: Int) -> [TargetType]
}