Я часто смущаюсь тем, как используются термины "аргументы" и "параметры". Они, кажется, используются взаимозаменяемо в мире программирования.
Какое правильное соглашение для их использования?
Я часто смущаюсь тем, как используются термины "аргументы" и "параметры". Они, кажется, используются взаимозаменяемо в мире программирования.
Какое правильное соглашение для их использования?
Параметры - это функции, определяемые функциями как входные, аргументы - это вещи, переданные как параметры.
void foo(int bar) { ... }
foo(baz);
В этом примере bar
является параметром для foo
. baz
- это аргумент, переданный foo
.
A Параметр - это переменная в объявлении функции:
functionName(parameter) {
// do something
}
Аргумент - это фактическое значение этой переменной, которое передается функции:
functionName(argument);
Для user1515422 - очень конкретный пример, показывающий разницу между параметрами и аргументами:
Рассмотрим эту функцию:
int divide(int numerator, int denominator) {
return numerator/denominator;
}
Он имеет два параметра: numerator
и denominator
, заданные при его определении. После определения параметры функции фиксированы и не будут меняться.
Теперь рассмотрим вызов этой функции:
int result = divide(8, 4);
В этом случае 8
и 4
являются аргументами , переданными функции. Параметр numerator
установлен в значение аргумента 8
, а denominator
- 4
. Затем функция оценивается с параметрами, установленными на значение аргументов. Вы можете думать о том, что процесс эквивалентен:
int divide() {
int numerator = 8;
int denominator = 4;
return numerator/denominator;
}
Разница между параметром и аргументом сродни разнице между переменной и ее значением. Если я пишу int x = 5;
, переменная x
, а значение 5
. Путаница может возникнуть, потому что естественно говорить такие вещи, как "x равно пяти", как сокращенное обозначение "переменная x имеет значение 5", но, надеюсь, различие ясно.
Проясняет ли это?
Аргументы - это то, что у вас есть, когда вы вызываете подпрограмму. Параметры - это то, к чему вы обращаетесь внутри подпрограммы.
argle(foo, bar);
foo
и bar
являются аргументами.
public static void main(final String[] args) {
args.length;
}
args
является параметром.
Есть хороший раздел в parameter Статья в Википедии по этому вопросу.
В коротком параметре есть формальное имя, определяемое функцией, а аргумент - это действительное значение (например, 5) или вещь (подобная переменная), переданная в функцию.
Хотя Wikipedia вряд ли является авторитетным источником, он делает достойную работу объясняя условия.
Я думаю, вы могли бы сказать, что параметры являются аргументами, какие классы относятся к экземплярам объектов...
Когда вы определяете такую функцию, как:
MyFunction(param1,param2) {
print parameter1, parameter
}
Вы задаете параметры при определении функции. Когда вы вызываете функцию следующим образом:
MyFunction('argument1', 'argument2');
Вы устанавливаете значения параметров в аргументы, которые вы передали. Аргументы - это то, что вы ставите в вопросе, когда вы его называете. Надеюсь, что это помогло.
Просто нет серьезных отличий. Если мы углубимся в это, мы сможем определить diff.Mainly мы знаем, что Аргумент/Параметр/подпись все такие же.
В основном Параметр определяет тип данных, которые мы передаем. Где Аргумент определяет фактические данные/переменную, которые мы передаем.
Параметр Пример: -
int add(int a,int b){ //Here a and be both can treated as Parameter
return a+b;
}
Пример аргумента:
int return_result=add(3,4); // Here 3 and 4 both can treated as Argument
or
int x=3,y=4;
int return_result=add(x,y);// Here x and y both can treated as Argument
В большинстве случаев процедура требует некоторой информации об обстоятельствах, в которых она была вызвана. Процедура, которая выполняет повторяющиеся или совместно используемые задачи, использует различную информацию для каждого вызова. Эта информация состоит из переменных, констант и выражений, которые вы передаете процедуре, когда вы ее вызываете.
Чтобы передать эту информацию в процедуру, процедура определяет параметр, а вызывающий код передает аргумент этому параметру. Вы можете придумать параметр как место для парковки и аргумент как автомобиль. Так же, как разные автомобили могут припарковаться на стоянке в разное время, вызывающий код может передавать другой аргумент одному и тому же параметру каждый раз, когда он вызывает процедуру.
Параметры
Параметр представляет значение, которое процедура ожидает, что вы пройдете, когда вы его вызовете. Объявление процедуры определяет ее параметры.
При определении Функция или Под процедура вы указываете список параметров в круглых скобках сразу после имени процедуры. Для каждого параметра вы указываете имя, тип данных и механизм передачи (ByVal или ByRef). Вы также можете указать, что параметр является необязательным, то есть код вызова не должен передавать ему значение.
Имя каждого параметра служит локальной переменной в процедуре. Вы используете имя параметра так же, как и любую другую переменную.
Аргументы
Аргумент представляет значение, которое вы передаете параметру процедуры при вызове процедуры. Вызывающий код предоставляет аргументы при вызове процедуры.
Когда вы вызываете Функция или Под процедура, вы включаете список аргументов в круглые скобки сразу же после имени процедуры. Каждый аргумент соответствует параметру в той же позиции в списке.
В отличие от определения параметров, аргументы не имеют имен. Каждый аргумент представляет собой выражение, которое может содержать ноль или более переменных, констант и литералов. Тип данных оцениваемого выражения должен, как правило, соответствовать типу данных, определенному для соответствующего параметра, и в любом случае он должен быть преобразован в тип параметра.
Фактически оба параметра и аргумента - это разные типы параметров. Это
1) Формальные параметры - переменные появляются в определениях функций/подпрограмм
например. (на Java)
public void foo(Integer integer, String... s2)
Здесь и целое число, и s2 являются формальными параметрами или слабо говорящими параметрами.
2) Фактические параметры или аргументы - переменные появляются в подпрограммах при вызове
уже определенная подпрограмма
например. (на Java) Предположим, что если функция "foo" находится в объекте "testObject",
testObject.foo(new Integer(1), "test")
Таким образом, переменные в определении функции называются формальными параметрами или просто параметрами и переменными, а вызывающие методы называются фактическими параметрами или аргументами. Надеюсь, это поможет.
Подумайте об этом как о базовой алгебре. X - это параметр, который вы должны заполнить, и номер, который вы помещаете внутри него, является аргументом. Поэтому, если у вас есть уравнение, подобное X + 2, X - ваш параметр, и любые числа, которые вы измените для X, станут известны как аргументы. Поэтому, если вы используете это уравнение, вы добавляете 1 для x, вы получаете 1 + 2. Это означает, что 1 является аргументом, заданным параметру X.
Точно так же, если у вас есть функция dosomething ("This"), это определение будет dosomething (string parametername), но "This" будет фактическим аргументом, который предоставляется параметру, здесь называется parametername.
В простейшем способе взглянуть на него параметр - это то, что аргумент заполняет, и аргументом может быть любое количество вещей, разрешенных этим параметром.
Таким образом, это соотношение между параметрами и аргументами "много-к-одному", так как вы можете иметь один параметр, который может иметь много действительных аргументов, например, наше уравнение X + 1 выше. X может быть любым известным числом, и все они действительны.
Переменная - это место хранения и связанное символическое имя (идентификатор), которое содержит данные, значение.
Параметр - это переменная, переданная функции.
Аргумент - это данные (значение), переданные функции.
$variable = 'data/value';
function first($variable){ ... }
function second('data/value'){ ... }
function third(16){ ... }
В функции сначала мы передаем параметр.
В функции второй и третьей мы передаем аргументы.