База Hintsage

Протоколы и generics

Protocols, extensions, associated types и generic constraints.

Практика

Вопросы: Протоколы и generics

Сравните ограничения на типы коллекций: почему вызов этой функции допустим для Array и Set, хотя сами типы коллекций различаются?

func combined<A: Collection, B: Collection>(
    _ first: A,
    _ second: B
) -> [A.Element]
where A.Element == B.Element {
    Array(first) + Array(second)
}

let result = combined([1, 2], Set([3, 4]))

Показано 1–20 из 100