2015-02-09 106 views
0

我已经看到使用语法param([parametertype[]]$Parameter)以及param([parametertype]$Parameter)定义的PowerShell函数参数。

就我个人而言,我一直使用后者(据我所知)没有问题。任何人都可以解释什么(如果有的话)是什么区别以及为什么两者都允许和工作?

回答

0

[parametertype[]]$Parameter$Parameter

[parametertype]$Parameter一个parametertype阵列parametertype

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

注意如何param_s是纯字符串,并访问该串中的第二位置的$Parameter当访问索引[1]比较红到什么是由param_a[1]

返回当在函数/ cmdlet的定义param关键字使用,它只是确保该函数将在PowerShell中传递正确的数据类型

+0

午餐时间的学习令人满意。谢谢 – ConanW 2015-02-09 14:39:20

0

你没有定义什么参数你正在使用,但你可以。 例如,如果您想将参数定义为[强制],有时它可能会很方便。 在你的例子中,你定义了一个数组类型param[]和单一类型。 你可以阅读更多关于Defining Parameters