В чем разница между @ () и @ {} в Powershell и когда использовать один над другим? - PullRequest
3 голосов
/ 15 января 2020

Я просматривал некоторые примеры в powershell и видел использование обоих @ () и @ {}. Выполнение быстрого поиска в Google по разнице говорит мне, что один является массивом, а другой - хеш-таблицей.

Не могли бы вы поделиться примерами из реальной жизни, в которых говорится, что я хотел бы создать хеш-таблицу, а не массив? И плюсы / минусы одного над другим? Заранее спасибо за ваш вклад!

Ответы [ 2 ]

5 голосов
/ 15 января 2020

массив - это просто список значений, тогда как хеш-таблица - это набор пар ключ / значение.

Вот несколько примеров:

Array

$i = @(1,2,3,4,5)

Hashtable

[hashtable]$i = @{ Number = 1; Shape = "Square"; Color = "Blue"}
1 голос
/ 15 января 2020

Преимущества га sh таблицы

  • Основным преимуществом является синхронизация.

  • Во многих ситуациях получается таблица ха sh быть более эффективным, чем деревья поиска или любая другая структура поиска таблиц. По этой причине они широко используются во многих видах компьютерных программ, особенно для ассоциативных массивов, индексации баз данных, кэшей и наборов.

Недостатки га sh таблица

  • Ха sh столкновения практически неизбежны. при хэшировании случайного подмножества большого набора возможных ключей.

  • Ха sh таблицы становятся совершенно неэффективными при большом количестве коллизий.

  • * 1024 Таблица * Ha sh не допускает нулевые значения, например, карта ha sh.

Преимущества массива

  • Тип safe. Собирает данные того же типа.

  • Доступ к индексам.

  • полезно для хранения без значений.

Недостатки массива

  • Фиксированный размер.

  • Потеря памяти. Бесполезно при работе с большим набором значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...