Итак, у меня есть кортеж typealias
public typealias MyTuple<T> = (key: T, value: String)
В моем ViewController я хочу объявить массив MyTuple с универсальным типом данных, так как я еще не знаю тип ключа. Однако из this в Swift невозможно иметь переменную универсального типа. Есть и другие обходные пути, как показано ниже, но мне не нравится ни один из них. У кого-нибудь есть идеи получше?
class ViewController: UIViewController {
var array1 = [MyTuple<T>]() // compile error of course
var array2 = [MyTuple<Any>]() // no point as I'd use `Any` for MyTuple
func getArray<T>(array: Array<MyTuple<T>>) -> Array<MyTuple<T>> {
return array // not a good approach
}
}
T
во время выполнения, и из-за этого вы не можете объявить массив[MyTuple<ConcreteType>]
, верно? - person Vadim Popov   schedule 10.06.2017