Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
В Swift в словаре (Dictionary) в качестве ключа может использоваться любой тип, соответствующий протоколу Hashable
.
Протокол Hashable
наследуется от протокола Equatable
.
==
, позволяющего проверить, являются ли два экземпляра типа равными.hashValue
(в старых версиях Swift) или вызова метода hasher.combine()
в методе hash(into:)
, который предоставляет уникальное целое число для каждого экземпляра типа. Это хеш-значение используется для быстрого поиска элементов в словаре.Большинство стандартных типов Swift, таких как String, Int, Double, Bool, Array и Set (если их элементы также Hashable), уже соответствуют протоколу Hashable
по умолчанию.
Для пользовательских типов (структур, классов, перечислений), чтобы использовать их в качестве ключей словаря, необходимо явно обеспечить их соответствие протоколу Hashable
. Для структур и перечислений с ассоциативными значениями, поля которых также Hashable, соответствие Hashable
может быть синтезировано компилятором автоматически при добавлении декларации `H
В Swift в словаре (Dictionary) в качестве ключа может использоваться любой тип, соответствующий протоколу Hashable
.
Протокол Hashable
наследуется от протокола Equatable
.
==
, позволяющего проверить, являются ли два экземпляра типа равными.hashValue
(в старых версиях Swift) или вызова метода hasher.combine()
в методе hash(into:)
, который предоставляет уникальное целое число для каждого экземпляра типа. Это хеш-значение используется для быстрого поиска элементов в словаре.Большинство стандартных типов Swift, таких как String, Int, Double, Bool, Array и Set (если их элементы также Hashable), уже соответствуют протоколу Hashable
по умолчанию.
Для пользовательских типов (структур, классов, перечислений), чтобы использовать их в качестве ключей словаря, необходимо явно обеспечить их соответствие протоколу Hashable
. Для структур и перечислений с ассоциативными значениями, поля которых также Hashable, соответствие Hashable
может быть синтезировано компилятором автоматически при добавлении декларации `H
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.