Словари (dictionary) swift

Описание:

Словарь - это неупорядоченная коллекция элементов одного и того же типа, для доступа к значениям которых используются ключи. Каждый элемент словаря состоит из уникального ключа, который указывает на данный элемент, и значения. В качестве ключа выступает не автоматически устанавливаемый индекс (как в массивах), а уникальный для словаря литерал произвольного типа, устанавливаемый разработчиком. Чаще всего ключи - это строковые литералы.

 

 

Другими словами, если каждый элемент массива - это пара индекс - значение, то каждый элемент словаря — это пара ключ - значение.
Идея словарей в том, чтобы использовать уникальные произвольные ключи для доступа к значениям, при этом, как и в наборах, порядок следования элементов не важен.

 

 

Значения в словаре хранятся вовсе не в том порядке, в каком вы их туда помещали Словари — это не массивы, они не являются упорядоченными коллекциями Вы не можете добавить элемент в конец словаря, вы просто добавляете новый элемент, а Swift самостоятельно решает, на какую позицию в данном словаре его поместить



Синтаксис словаря в swift

[ключ_1:значение_1, ключ_2:значение_2, ...,
ключ_N:значение_N]
Литерал словаря описывает элементы словаря Он записывается в квадратных скобках, а указанные в нем элементы разделяются запятыми Каждый элемент — это пара ключ — значение, где ключ отделен от значения двоеточием
 

ПРИМЕЧАНИЕ

Для создания неизменяемого словаря используйте оператор let, в противном случае — оператор var

 

Явное указание типа данных словаря
Тип данных элементов словаря содержит в себе два типа данных: тип ключа и тип значения. Так же как и при работе с массивами и наборами, вы можете явно указать значение типа данных коллекции, но при
этом необходимо задать типы данных и для ключа, и для значения.
 

СИНТАКСИС
var имя_словаря: Dictionary<ТипКлюча:ТипЗначения>
var имя_словаря: [ТипКлюча:ТипЗначения]
Тип словаря в этом случае равен [ТипКлюча:ТипЗначения] (с квадратными скобками) или Dictionary<ТипКлюча:ТипЗначения > Оба варианта указания типа данных равнозначны

 

 

Создание пустого словаря

Для того чтобы создать пустой словарь, он должен быть инициализирован значением без элементов. Это делается с помощью конструкции [:], которая как раз и является литералом словаря, не имеющего
элементов

 

var emptyDictionary: [String:Int] = [:]

 

С помощью конструкции [:] можно также уничтожить все элементы словаря, если присвоить ее словарю в качестве значения

 

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

countryDict = [:]

 countryDict

 

 

Пример создания словаря swift

 

var dictionary = ["one":"один", "two":"два", "three":"три"]
Словарь dictionary содержит три элемента. Здесь one, two и three — это ключи, которые служат для доступа к значениям словаря. Типом данных ключей, как и типом данных значений словаря, является
String.
При попытке создания словаря с двумя одинаковыми ключами Xcode сообщит об ошибке.

 

 

Взаимодействие с элементами словаря

Доступ к элементам словаря происходит с помощью уникальных ключей. Как и при работе с массивами, ключи предназначены не только для получения значений элементов словаря, но и для их изменения

 

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

 // получаем значение элемента
countryDict["BEL"] "Беларусь"
// изменяем значение элемента
5 countryDict["RUS"] = "Российская Федерация" "Российская Федерация"
6 countryDict ["BEL": "Беларусь", "UKR": "Украина", "RUS": "Российская Федерация"]

 

 

При изменении значения с использованием сабскрипта Swift возвращает устанавливаемое значение этого элемента.  В результате исполнения данного кода словарь countryDict получает измененное значение элемента с ключом RUS. Для обновления значения элемента словаря можно также использовать метод updateValue(). Как показано в листинге, при установке нового значения данный метод возвращает опциональное старое значение (или nil, если значения по изменяемому ключу не существует).

 

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

// изменяем значение элемента
 countryDict.updateValue(value: "Российская Федерация", forKey: "RUS")
countryDict ["BEL": "Беларусь", "UKR": "Украина", "RUS": "Российская Федерация"]

 

 

Для изменения значения в метод updateValue передается новое значение элемента и параметр forKey, в значении которого указан ключ изменяемого элемента. В отличие от варианта с использованием сабскрипта данный метод возвращает не новое, а старое значение элемента словаря.

 

Для того чтобы создать новый элемент в словаре, достаточно задействовать сабскрипт с указанием на новый несуществующий ключ, передав ему требуемое значение.

 

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

 // создание нового элемента словаря
 countryDict["TUR"] = "Турция" "Турция"
 countryDict ["BEL": "Беларусь", "UKR": "Украина", "RUS": "Россия", "TUR": "Турция"]

 

 

Для удаления некоторого элемента (пары ключ - значение) достаточно присвоить удаляемому элементу nil или использовать метод removeValueForKey, указав ключ элемента.

 

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

// удаление элемента словаря
 countryDict["UKR"] = nil
countryDict.removeValueForKey("BEL")
countryDict ["RUS": "Россия"]

 

 

При использовании метода removeValueForKey возвращается значение удаляемого элемента. Если вы попытаетесь получить доступ к несуществующему элементу словаря, это не приведет к ошибке - Swift просто вернет nil. Это говорит о том, что любое возвращаемое значение элемента словаря - опционал.

 

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

 

// получим значение элемента
let myCountry: String = countryDict["RUS"]!

 

 

Для преобразования возвращаемого значения элемента countryDict["RUS"] из типа String? в тип String выполняется принудительное извлечение значения

 

Базовые свойства и методы словарей
Словари, как и массивы с наборами, имеют большое количество свойств и методов.

Свойство count возвращает количество элементов в словаре

 

var someDictionary = [1, 2, 3, 4, 5]
количество элементов в словаре
 someDictionary.count 5

 

Если свойство count равно нулю, то свойство isEmpty возвращает true

var someDictionary: [Int] = []
someDictionary.count 0
someDictionary.isEmpty true

 

 

При необходимости вы можете получить все ключи или все значения словаря с помощью свойств keys и values

var countryDict = ["RUS":"Россия", "BEL": "Беларусь", "UKR":"Украина"]

 

// все ключи словаря countryDict
var keys = countryDict.

// все значения словаря countryDict
var values = countryDict.values 

Категория Технические науки лекции / Swift язык программирования iOS
Дата размещения03.11.2016
Количество просмотров30
Статью добавил пользователь Diplom
Пожаловаться на публикацию
Еще статьи из данной категории
Предыдущие статьи Следующие статьи
Комментарии к публикации
Комментариев к публикации нет...
Поиск статей в каталоге
расширенный поиск статей
Категории каталога статей
Общественные и гуманитарные науки лекции
Лекций по бухгалтерскому учету
Лекции реклама
Лекции по аудиту
Экономика организации предприятия лекции
Конспект лекций по экономике
Лекции по социологии
Стратегическое планирование лекции
Лекции по бжд для вузов
Социальная антропология учебник
Лекции по pr
Государственное регулирование экономики учебник
Музыковедение
Лекции по этнологии и этнографии
Методика преподавания биологии
Музееведение
Философия лекции
Политология лекции
Менеджмент и управление
Труд и занятость
Русский язык и культура речи
Лекции по праву
Лекции по истории
Новости сайта
  • 01.09.2016
    Поздравляем всех кто учиться и всех кто учить с началом учебного сезона.
  • 01.06.2016
    Поздравляем с началом лета и каникулами всех учащихся и преподавателей!
  • 01.05.2016
    Поздравляем посетителей нашей доски объявлений и образовательного портала с наступающими майскими праздниками: Днем Труда и Днем Победы!
  • 08.03.2016
    Поздравляем с праздником Весны. Желаем весеннего настроения, счастья, радости и красоты.
  • 23.02.2016
    Дорогие мужчины! Женская половина нашего коллектива поздравляем мужчин с Днём защитника отечества!
Статистика каталога статей
Всего статей: 3214
Добавлено сегодня: 0
Добавлено вчера: 0
Статистика каталога
Всего объектов: 1013
Добавлено сегодня: 0
Добавлено вчера: 0
Статистика объявлений
Всего объявлений: 713
Добавлено сегодня: 0
Добавлено вчера: 0
Подписка на рассылку
Ваше имя
Ваш Email