Статическая типизация членов хэш-таблицы - PullRequest
0 голосов
/ 19 февраля 2019

Я знаю, что PowerShell по умолчанию имеет динамическую типизацию, что имеет большой смысл для «быстрых и грязных» однострочников и коротких скриптов.Но я начал пытаться объявлять переменные по типу в моих длинных скриптах, так как это позволяет избежать определенных ошибок.Это нормально работает с обычными переменными, даже когда инициализируется как $ null, как это [int]$int = $null.Тем не менее, я также использую множество хеш-таблиц для возврата нескольких значений из функций, и я бы тоже хотел использовать статическую типизацию.Но вы не можете использовать подобный подход, как этот ...

$hash = @{
    [int]int = $null
    [string]string = $null
}

Вы можете разыграть вот так ...

$hash = @{
    int = [int]$null
    string = [string]$null
}

, но это все же оставляет хеш-члены динамическими, поэтому$ hash.int = 'string' является действительным.

Я мог бы переключиться на использование пользовательских объектов, но я считаю, что довольно уродливый ускоритель типа v3 не выдерживает.К сожалению, я также в значительной степени заблокирован для поддержки v2, поэтому я чувствую, что хеш-таблицы все еще находятся в пути.

Итак, есть ли способ сделать это в хеш-таблицах, которые мне не хватает?Или это причина для пользовательских объектов?

...