2009-07-07 7 views

Répondre

23

Voici un exemple de la façon de le faire en utilisant l'opérateur d'appel (&).

# define 3 functions 
function a { "a" } 
function b { "b" } 
function c { "c" } 

# create array of 3 functioninfo objects 
$list = @(
    (gi function:a), 
    (gi function:b), 
    (gi function:c) 
) 

0, 1, 2 | foreach { 
    # call functions at index 0, 1 and 2 
    & $list[$_] 
} 

-Oisin

P.S. cela signifie que votre pipeline devrait bve modifié à quelque chose comme:

$Fields[$i] = $Fields[$i] | & $FunctionTable[$i] 
+0

Très cool. Merci beaucoup! – tellingmachine

2

Voici quelque chose de similaire aussi en utilisant l'opérateur &:

 
function f1 
{ "Exec f1" } 

function f2 
{ "Exec f2" } 

function f3 
{ "Exec f3" } 

function f4 
{ "Exec f4" } 

function UseFunctionList ([string[]]$FunctionList) 
{ 
foreach ($functionName in $functionList) 
    { 
    & $FunctionName 
    } 
} 

function Go 
{ 
'List 1' 
$FunctionList = 'f1','f2','f3','f4' 
UseFunctionList $FunctionList 
'List 2' 
$FunctionList = 'f4','f3','f2' 
UseFunctionList $FunctionList 
} 

Questions connexes