Получи случайную криптовалюту за регистрацию!

Принят пропозал '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