Массивы в Windows PowerShell, часть 2

Продолжаем разговор о массивах в Windows PowerShell. В предыдущей части мы говорили об обращении к элементам массива. Сегодня поговорим об операциях с массивом.

Операции с массивом

По умолчанию все массивы в PowerShell являются полиморфными, т.е. способны содержать в себе элементы разных типов.

Давайте создадим массив $a, состоящий, к примеру, из трех элементов 1, 2 и 3. И проверим его тип на практике.

Массивы в Windows PowerShell

Итак, как видим, для того, чтобы посмотреть тип массива $a, нам нужно набрать

$a.GetType().FullName

и мы увидим, что это массив типа System.Object[]. Такие массивы могут содержать объекты всех типов.

Мы можем создать массив с жестко заданными элементами одного типа. Для этого при создании массива перед его именем нужно прописать в квадратных скобках нужный нам тип переменных.

[int[]]$a=1,2,3

Если мы попытаемся перезаписать значение элемента такого массива на что-нибудь неподходящее, мы увидим следующее сообщение об ошибке:

Массивы в Windows PowerShell

Теперь поговорим о том, как можно изменять уже существующие массивы.

К примеру, наш массив $a имеет три элемента, если мы попытаемся обратиться к элементу, выходящему за границы массива, PowerShell просто проигнорирует нас. А вот если мы попытаемся изменить значение несуществующего элемента, нас встретит сообщение об ошибке.

Массивы в Windows PowerShell

Если нам нужно увеличить длину массива, мы можем использовать операторы + или +=.

Массивы в Windows PowerShell

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

По той же логике мы не можем удалить элементы из уже существующего массива, но мы можем создать новый массив и скопировать туда все элементы, кроме ненужных.

Массивы в Windows PowerShell

Объединить массивы довольно просто.

Массивы в Windows PowerShell

Для удаления массива нужно воспользоваться командлетом Remove-Item  (псевдоним del) и удалить массив с виртуального диска variable. Ниже пример удаления массива $a.

Массивы в Windows PowerShell

И последнее, что нужно знать о массивах. Если мы просто используем оператор присваивания (=), то новый массив будет своеобразной ссылкой на предыдущий. К примеру, $b=$a создаёт массив $b, который ссылается на $a. Если мы изменим значения элементов массива $a, то они изменятся и в $b. Данное правило не касается массивов, полученных из объединения других.

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

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