如何将参数传递给变量引用的函数

时间:2009-03-26 13:23:19

标签: function powershell reference arguments

我有一个函数'foo'和一个引用它的变量'$ foo'。

function foo
{
    param($value)
    $value + 5
}

$foo = foo
$foo

我可以在没有args的情况下调用$ foo,但是如何传递参数呢?这不起作用:

$foo 5
$foo(5)

实际上,目标是编写这样的代码:

function bar {
  param($callback)
  $callback 5
}

bar(foo)

4 个答案:

答案 0 :(得分:9)

问题在于你做什么

  

$ foo = foo

您将函数的结果放在变量$ foo中,而不是函数本身!

试试这个:

  

$ foo = get-content功能:\ foo

并像这样称呼它

  

&安培; $ foo 5

希望它有所帮助!

答案 1 :(得分:3)

使用脚本块。

# f.ps1

$foo = 
{
    param($value)
    $value + 5
}

function bar 
{
  param($callback)
  & $callback 5
}

bar($foo)

运行它:

> ./f.ps1
10

答案 2 :(得分:1)

编辑第一次误读了这个问题

您需要做的是使用&操作

& $foo 5

答案 3 :(得分:0)

$ foo = foo 5