Хэш-таблицы в Windows PowerShell

Поговорив о массивах, обратимся к хэш-таблицам в Windows PowerShell. Хэш-таблицы это тоже своего рода массивы, еще их называют ассоциативными массивами или словарями. По своей сути хэш-таблицы это структуры для хранения ключей и их значений, связанных попарно. Это может быть что угодно. Например, фамилия студента (ключ) и его оценка за экзамен (значение). Таким образом, ассоциативные массивы это таблицы из двух столбцов — с ключом и значением.

В целом, хэш-таблицы в PowerShell похожи на обычные массивы. Разница состоит в том, что обращаться к элементам массива нужно не по индексу, а по их ключу. В таком случае PowerShell возвращает соответствующее значение.

В общем виде ассоциативный массив записывается следующим образом:

$имя_массива = @{ключ1 = значение1;  ключ2 = значение2; . . . ключN = значениеN}

Для примера создадим хэш-таблицу с оценками студентов за экзамен.

$primer = @{Иванов="5"; Петров="4"; Сидоров="2"}
Хэш-таблицы в Windows PowerShell
Пример создания хэш-таблицы в Windows PowerShell

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

Вот, например, обращение с использованием нотации свойств:

Хэш-таблицы в Windows PowerShell

В данном случае хэш-таблица рассматривается как объект. Мы указываем имя нужного свойства и получаем его значение.

Обращение к элементам массива через нотации массива выглядит следующим образом:

Хэш-таблицы в Windows PowerShell

Как видите, во втором случае можно получить значения сразу нескольких элементов.

Базовым типом хэш-таблиц в Windows PowerShell является System.Collections.Hashtable. Полный список его свойств и методов можно получить уже знакомым командлетом Get-Member. Так, например, в свойствах Keys хранятся все ключи массива, а в Values — значения.

Хэш-таблицы в Windows PowerShell
Просмотр всех ключей и значений в хэш-таблице

Теперь поговорим о том, какие операции мы можем проводить с элементами хэш-таблиц.

Добавить элемент в хэш-таблицу можно так же двумя путями — через соответствующие нотации.

$primer.Волков=4
Хэш-таблицы в Windows PowerShell
Добавление элементов в хэш-таблицы PowerShell

или

$primer["Барамидзе"]="2"

Хэш-таблицы в Windows PowerShell

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

$primer.Барамидзе="3"
Хэш-таблицы в Windows PowerShell
Изменение значения элемента хэш-таблицы в Windows PowerShell

А Сидоров был отчислен. И его из таблицы нам придется удалить. Для этого используется метод Remove().

$primer.Remove("Сидоров")
Хэш-таблицы в Windows PowerShell
Удаление элементов хэш-таблицы в Windows PowerShell

Можно создать пустую таблицу и уже потом заполнять её.

Хэш-таблицы в Windows PowerShell

Как и в случае с обычными массивами, оператор присваивания действует на хэш-таблицы по ссылке.

Хэш-таблицы в Windows PowerShell

В данном случае переменные $a и $b указывают на один и тот же массив. Поменяв значение в $a, мы получим такое же изменение и в $b.

Хэш-таблицы в Windows PowerShell

Добавить комментарий

Ваш адрес email не будет опубликован.