[parametertype[]]$Parameter 是什么意思?
What does [parametertype[]]$Parameter mean?
我见过使用语法 param([parametertype[]]$Parameter)
和 param([parametertype]$Parameter)
.
定义的 PowerShell 函数参数
就我个人而言,我一直使用后者(据我所知)没有问题。任何人都可以解释有什么区别(如果有的话)以及为什么两者都被允许和工作吗?
[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_a[1]
返回的内容相比,param_s
是一个纯字符串,并且在访问索引 [1]
时访问字符串中的第二个位置
当函数/cmdlet 定义中的 param
关键字使用时,它只是确保函数将传递正确的数据类型
在 powershell 中,您不必定义要使用的参数,但您可以。
例如,如果您想将参数定义为 [mandatory] ,有时它会很方便。
在您的示例中,您定义了数组类型 param[]
和单一类型。
你可以阅读更多关于 Defining Parameters.
我见过使用语法 param([parametertype[]]$Parameter)
和 param([parametertype]$Parameter)
.
就我个人而言,我一直使用后者(据我所知)没有问题。任何人都可以解释有什么区别(如果有的话)以及为什么两者都被允许和工作吗?
[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_a[1]
param_s
是一个纯字符串,并且在访问索引 [1]
时访问字符串中的第二个位置
当函数/cmdlet 定义中的 param
关键字使用时,它只是确保函数将传递正确的数据类型
在 powershell 中,您不必定义要使用的参数,但您可以。
例如,如果您想将参数定义为 [mandatory] ,有时它会很方便。
在您的示例中,您定义了数组类型 param[]
和单一类型。
你可以阅读更多关于 Defining Parameters.