Принят пропозал 'Unlock Existencials for All Protocols' Сегод | Server Side Swift News
Принят пропозал "Unlock Existencials for All Protocols"
Сегодня был принят пропозал, разрешающий использовать все протоколы в сигнатурах функций и значений.
Ранее при попытке напрямую использовать протокол с associated типами или требованиями по Self компилятор выдавал ошибку «protocol can only be used as a generic constraint because it has Self or associated type requirements» и предлагал использовать протокол как ограничение в дженерике. Теперь такого ограничения не будет.
Например, теперь можно будет сделать следующее:
let myCollection: Collection = Array([1, 2, 3])
let firstValue = myCollection.first // тип будет Any?
Почитать подробности пропозала можно по ссылке https://github.com/apple/swift-evolution/blob/main/proposals/0309-unlock-existential-types-for-all-protocols.md