Например, у меня есть массив, объявленный вне цикла, который будет заполняться внутри цикла, хотя я хочу обобщить это, если API изменится в будущем.Возможно ли инициализировать массив типом возвращаемого значения функции?
var array: [TypeOfReturn]
for var i = 0; i < someArray.count; i++ {
array = someFunction()
}
// --- elsewhere ---
func someFunction() -> [TypeOfReturn] {
// Do work
}
То, что я хотел бы сделать, это тип (в данном случае [TypeOfReturn]
) и объявить массив вне цикла к этому типу, и это все. Я ненавижу опции и AnyObject
не подходит, и синтаксис языка, похоже, не поддерживает это без каких-либо махинаций. Кто-нибудь знает, что такое эти махинации?
Будет ли использование 'typealias' достаточным для ваших нужд? –
Это было бы, хотя я бы предпочел что-то в строке, чтобы держать муфту свободным. Что-то отражает-у. – Hyperbole
Если вы действительно не можете просто определить 'TypeOfReturn' как' struct' или 'class', вы можете рассмотреть возможность определения' TypeOfReturn' как 'protocol' –