Я знаю, что PowerShell по умолчанию имеет динамическую типизацию, что имеет большой смысл для «быстрых и грязных» однострочников и коротких скриптов.Но я начал пытаться объявлять переменные по типу в моих длинных скриптах, так как это позволяет избежать определенных ошибок.Это нормально работает с обычными переменными, даже когда инициализируется как $ null, как это [int]$int = $null
.Тем не менее, я также использую множество хеш-таблиц для возврата нескольких значений из функций, и я бы тоже хотел использовать статическую типизацию.Но вы не можете использовать подобный подход, как этот ...
$hash = @{
[int]int = $null
[string]string = $null
}
Вы можете разыграть вот так ...
$hash = @{
int = [int]$null
string = [string]$null
}
, но это все же оставляет хеш-члены динамическими, поэтому$ hash.int = 'string'
является действительным.
Я мог бы переключиться на использование пользовательских объектов, но я считаю, что довольно уродливый ускоритель типа v3 не выдерживает.К сожалению, я также в значительной степени заблокирован для поддержки v2, поэтому я чувствую, что хеш-таблицы все еще находятся в пути.
Итак, есть ли способ сделать это в хеш-таблицах, которые мне не хватает?Или это причина для пользовательских объектов?