В документации Swift говорится, что протоколы обрабатываются как любые другие типы, но, глядя на некоторые примеры, я вижу, что вместо протокола используется конструкция типа ограничения типа.Когда использовать Type Constraints в Swift?
Давайте возьмем Swift словарь для примера:
struct Dictionary<Key: Hashable, Value>: CollectionType, DictionaryLiteralConvertible {
// ...
subscript (key: Key) -> Value?
// ...
}
Может не то, что было написано, как этот
struct Dictionary<Value>: CollectionType, DictionaryLiteralConvertible {
// ...
subscript (key: Hashable) -> Value?
// ...
}
?
Я вижу вид ограничения, полезный с где условия для типов со связанными типами, но я не уверен в этом конкретном примере.
Справа, справа: «В вашем втором примере вы просто требуете, чтобы ключ слова был Hashable, а не все ключи одного и того же конкретного типа». Благодаря! –