В чем разница между параметром и аргументом в powershell? - PullRequest
6 голосов
/ 06 сентября 2011

Я запутался в параметрах и аргументах в powershell.Можете ли вы помочь мне объяснить, в чем разница между param и arg?Спасибо.

Ответы [ 2 ]

9 голосов
/ 06 сентября 2011

Вы говорите о параметре, определенном с помощью param, и об аргументах, доступных через $args?

В общем случае параметр - это переменная, которая является частью сигнатуры метода (объявления метода). Аргумент - это выражение, используемое при вызове метода.

Но для разграничения param и args вы можете рассматривать первые как определяющие параметры, которые можно передать скрипту (или функции и т. Д.), Используя имя параметра и указав его значение ( именованный аргумент) или позиционные аргументы, указывающие только значения и последние как доступ к позиционным аргументам сверх параметров, ожидаемых сценарием, как определено в param

Рассмотрим следующий скрипт с именем test.ps1:

param($param1,$param2)

write-host param1 is $param1 
write-host param2 is $param2

write-host arg1 is $args[0]
write-host arg2 is $args[1]

И, предположим, я называю скрипт как:

.\test.ps1 1 2 3 4

Я получу вывод:

param1 is 1
param2 is 2
arg1 is 3
arg2 is 4

Это эквивалентно названию:

.\test.ps1 -param1 1 -param2 2 3 4

или даже

.\test.ps1 3 4 -param2 2 -param1 1
3 голосов
/ 06 сентября 2011

Традиционно в языках программирования параметр определяет входные данные для функции, в которой функция объявлена.Аргументы - это значения, предоставляемые при вызове функции.Значения аргумента отображаются на параметры функции.Вы можете прочитать больше об этом в Википедии .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...