2015-02-09 7 views
0

Я видел параметры функции PowerShell, определенные с использованием синтаксиса param([parametertype[]]$Parameter), а также param([parametertype]$Parameter).

Лично я всегда использовал последнее (насколько я могу судить) никаких проблем. Может ли кто-нибудь объяснить, что (если есть), является ли разница и почему оба разрешены и работают?

ответ

0

[parametertype[]]$Parameter является parametertypeмассива из $Parameter

[parametertype]$Parameter является $Parameter из parametertype

т.е.

> [string]$param_s = "parameter" 
> [string[]]$param_a = "parameter", "param2", "param3" 
> $param_s[1] 
a 
> $param_a[1] 
param2 

Обратите внимания, как param_s является простой строкой и обращающейся второй позиции в строке при доступе к индексу [1] compa красный, возвращенным param_a[1]

Когда используется param ключевое слово в определении функции/командлетов, это только обеспечивает функция будет принят соответствующий тип

+0

Удовлетворительная битва обучения в обеденное время. благодаря – ConanW

0

данных в PowerShell вы не должны определить, какой параметр вам но вы можете. Иногда это может быть удобно, если вы хотите, например, определить параметр как [обязательный]. в вашем примере вы отключаете тип массива param[] и один тип. вы можете узнать больше о Defining Parameters.

Смежные вопросы