【发布时间】:2015-09-28 19:41:14
【问题描述】:
是否可以从子属性中调用参数?
例如,这里有一个示例函数来说明:
function Get-Pow{
param(
[int]$x,
[int]$y
)
[Math]::Pow($x,$y)
}
这个函数可以使用:
$args = @{ x=10; y=2 }
Get-Pow @args # outputs 100
这也可以使用简单的迭代来调用:
$powsOfTen = @(
@{ x=10; y=1 }
@{ x=10; y=2 }
@{ x=10; y=3 }
)
foreach($p in $powsOfTen){
Get-Pow @p # Outputs 10,100,1000
}
但是,如果参数哈希表来自子属性,则它不起作用:
$valuesToCompute = @(
@{ Id=1; Arguments = @{ x = 10; y= 1} }
@{ Id=2; Arguments = @{ x = 10; y= 2} }
@{ Id=3; Arguments = @{ x = 10; y= 3} }
)
foreach($valueToCompute in $valuesToCompute){
Write-Host $valueToCompute.Id
Get-pow @($valueToCompute.Arguments)
}
当 args 来自子属性时,我应该如何调用我的函数?
我尝试了@valueToCompute.Arguments,我尝试了$args = $valueToCompute.Arguments; Get-Pow @args,但我没有尝试任何工作。
【问题讨论】:
-
你的问题不是缺乏能力,而是缺乏语法。目前正在 PowerShell RFC0002-Generalized-Splatting 中解决此问题
标签: powershell