Je suis sûr que je lisais quelque part qu'il existe un moyen facile de passer des paramètres nommés à partir d'une fonction d'appel à une fonction appelée sans nommer explicitement et spécifier chaque paramètre.
Ceci est plus que de réutiliser la position; Je suis intéressé par le cas où le nom des paramètres transcédés est le même dans certains cas, mais pas dans d'autres. P>
Je pense aussi qu'il existe une manière qui n'est pas dépendante de la position. P >
function called-func { param([string]$foo, [string]$baz, [string]$bar) write-debug $baz write-host $foo,$bar } function calling-func { param([int]$rep = 1, [string]$foo, [string]$bar) 1..$rep | %{ called-func -foo $foo -bar $bar -baz $rep ## <---- Should this be simpler? } } calling-func -rep 10 -foo "Hello" -bar "World"
3 Réponses :
Que diriez-vous de
called-func $foo $bar
Eh bien, je pense que je confonds un Blog Post J'ai lu sur les paramètres de commutation. Pour autant que je puisse dire le meilleur moyen, c'est simplement réutiliser les paramètres comme:
called-func -foo:$foo -bar:$bar
La syntaxe du côlon est requise lorsque foo code> est un paramètre de commutation. Si vous passez
-foo $ foo code> alors
appelé-func code> pensera qu'il reçoit deux arguments (le commutateur
foo code> et une valeur
$ foo code>).
dans PowerShell v2 (qui, certes, vous ne serez peut-être pas prêt à passer à autre chose) vous permet de passer le long des paramètres sans les connaître à l'avance:
called-func $PSBoundParameters
Oui, j'ai hâte que v2 va à la production :)
J'ai fait Certains i> Googling en premier, mais depuis que je n'ai pas vu la réponse déjà ici, je voulais aussi l'obtenir ici aussi.
Donc, après une certaine google, je pense que la fonctionnalité que je pensais avoir eu à faire avec des "éclaboussures" et de passer des paramètres de commutation. Je posterai une réponse après avoir obtenu tous les détails.