Hvordan passere argumenter til å fungere refereres til av variabel

stemmer
6

Jeg har en funksjon 'foo' og en variabel '$ foo' refererer det.

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

$foo = foo
$foo

Jeg kan ringe $ foo uten args, men hvordan kan jeg sende parametre? Dette fungerer ikke:

$foo 5
$foo(5)

Egentlig målet er å skrive slik kode:

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

bar(foo)
Publisert på 26/03/2009 klokken 13:23
kilden bruker
På andre språk...                            


4 svar

stemmer
1

EDIT misread spørsmålet første gang

Hva du trenger å gjøre er å bruke den og operatør

& $foo 5
Svarte 26/03/2009 kl. 13:27
kilden bruker

stemmer
9

Problemet er når du gjør

$ Foo = foo

Du setter resultatet av funksjonen i variabelen $ foo, ikke selve funksjonen!

Prøv dette :

$ Foo = get-innhold Funksjon: \ foo

Og kaller det som dette

& $ Foo 5

Håper det hjelper !

Svarte 26/03/2009 kl. 13:52
kilden bruker

stemmer
0

$ Foo = foo 5

Svarte 26/03/2009 kl. 14:32
kilden bruker

stemmer
3

Bruk et skriptblokken.

# f.ps1

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

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

bar($foo)

Kjører det:

> ./f.ps1
10
Svarte 26/03/2009 kl. 14:55
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more