web-dev-qa-db-ja.com

引数とパラメータの違いは何ですか?

口頭でメソッドについて話すとき、私は決してWord引数またはパラメータまたは他の何かを使うべきかどうかわからない。いずれにせよ、他の人々は私が何を言っているのか知っていますが、何が正しいのですか、そして用語の歴史は何ですか?

私はC#プログラマですが、人々が異なる言語で異なる用語を使用するのかどうかも疑問に思います。

その記録のために、私はコンピュータサイエンスのバックグラウンドなしで独学です。 コードの完成 を読むように言わないでください。 Steve McConnell のすばらしい本。)

概要

一般的なコンセンサスは、チーム環境でこれらの用語を同じ意味で使用することは問題ないということです。厳密な用語を定義しているときを除いて、おそらく。曖昧さを解消するために、 "引数/パラメータ"と "引数/パラメータ"も使用できます。

611
rohancragg

パラメータは、メソッド定義内の変数です。メソッドが呼び出されると、引数はメソッドのパラメータに渡すデータです。

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
741

パラメータは関数の宣言内で可変です。

引数は、関数に渡されるこの変数の実際の値です。

288
Rinat Abdullin

parameter および argument という用語を定義および区別するウィキペディアのエントリがすでに件名にあります( パラメータ を参照)。つまり、パラメータは関数/プロシージャ/メソッドシグネチャの一部であり、引数は実行時またはコールサイトでパラメータに提供される実際の値です。

ウィキペディアの記事には、2つの用語は同義語として使用されることが多いとも述べられています(特にコードについて非公式に推論する場合)。

パラメータは一般に引数とも呼ばれますが、サブルーチンが実行時に呼び出されるときには、引数は実際の値またはパラメータ変数に割り当てられた参照として適切に考えられます。

2つの整数を追加するCの次の関数例では、xyがパラメータとして参照されます。

int add(int x, int y) {
    return x + y;
}

以下の例のようにaddを使用しているコールサイトでは、 123 および 456 はコールの arguments として参照されます。

int result = add(123, 456);

また、言語仕様(または正式な文書)の中には、 parameter または argument を排他的に使用し、2つのケースを明確にするために formal および actual のような形容詞を使用するものもあります。例えば、C/C++の資料では、しばしば関数 parameters as 形式引数 および関数呼び出し arguments as 実引数 と呼ばれています。例については、 『Visual C++言語リファレンス』 の「 仮引数と実引数 」を参照してください。

69
Atif Aziz

シンプル:

  • PARAMETER→PLACEHOLDER(プレースホルダーを意味します)関数の命名に属し、関数本体で使用される
  • ARGUMENT→ACTUAL VALUE(これは関数呼び出しによって渡される実際の値)
54
Duc Filan

パラメータは、関数を呼び出すときに記入しなければならないものです。あなたがそれに入れたものは議論です。

単純に設定すると、引数はパラメータに入り、引数はパラメータの値になります。

もう少し情報: http://ja.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments

30
Carra

パラメータは、関数の宣言内で可変です。

引数は、関数に渡されるこの変数の実際の値です。 enter image description here

14
user6864832

パラメータや引数という用語の使用は、プログラマや作者の間でも多少誤用されています。メソッドを扱うとき、termパラメータはメソッドシグネチャのプレースホルダを識別するのに使われますが、term引数は実際のメソッドに渡す値.

MCSD検証ツールキット(試験70-483)C#でのプログラミング、初版、Wrox、2013

実社会のシナリオ

// Define a method with two parameters
int Sum(int num1, int num2)
{
   return num1 + num2;
}

// Call the method using two arguments
var ret = Sum(2, 3);
13
ZenLulz

編集では、私は人々が忘れる方法にしばしば延期されます:構造言語は自然言語に基づいています。

英語で

「パラメータ」はプレースホルダです。彼らは話し言葉で、応答フォーマットを設定します。定義上、通話の相手であり、応答は制限されています。

「議論」は検討されている立場です。あなたはあなたの意見を主張します:あなたは議論を考えます。

主な違い

議論の主題の役割はエージェントです。パラメータの主題の役割は受信者です。

インタラクション

引数を男性部分と考え、パラメータを女性部分にします。引数はパラメータに入ります。

使用法

パラメータは定義で通常使用される通常です。引数は通常呼び出しで使用されます

質問

文の終わりを示して不和を少なくします

(A)定義と言えば:

  1. どのような議論が使われるでしょう[]?
  2. このパラメータは何になりますか。

(B)呼び出しといえば:

  1. どのようなパラメータを使用しますか。
  2. このパラメータは何になりますか。

答え

(A)

  1. このパラメータのon/in/against /
  2. 引数...取る

(B)

  1. そしていくつかの例の引数は何ですか
  2. 引数... .../in/against/withで使用されています

重複

あなたが想像できるように、答えた後に:話し言葉では、これらの単語は時々同一の応答を生み出すでしょう!

だから、原則として:

  • 通常、誰かがパラメータ情報を望んでいる場合、それらは型、変数名などについてもっと知りたいと思っています。引数の例を挙げただけでは混乱する可能性があります。

    • 通常、誰かが引数情報を望んでいる場合、彼らはあなたが関数やそのパラメータにどのような値を渡したのかを知りたがっています。
9
Wolfpack'08

パラメータと引数

パラメータと引数に関連するさまざまな用語はすべて混乱を招く可能性があります。ただし、いくつかの簡単な点に留意すると、これらの用語を簡単に扱うことができます。

  1. 関数の仮パラメーターは、関数宣言にリストされており、関数定義の本体で使用されています。 (どんな種類の)仮パラメータも、関数が呼び出されたときに何かで埋められる一種の空白またはプレースホルダです。
  2. 引数は、仮パラメータを埋めるために使用されるものです。関数呼び出しを書き留めると、引数は関数名の後の括弧内にリストされます。関数呼び出しが実行されると、仮引数に対して引数がプラグインされます。
  3. 値による呼び出しおよび参照による呼び出しという用語は、プラグインプロセスで使用されるメカニズムを表します。 。値による呼び出し方法では、引数の値のみが使用されます。この値による呼び出しメカニズムでは、仮パラメータは対応する引数の値に初期化されるローカル変数です。参照による呼び出しメカニズムでは、引数は変数であり、変数全体が使用されます。参照による呼び出しメカニズムでは、仮変数に代入された変更が実際には引数変数にも行われるように、仮引数に代入変数が代入されます。

ソース:Absolute C++、Walter Savitch

あれは、

enter image description here

7
snr

関数/メソッドのパラメータは、結果を計算するために使用する値を説明します。

Aの引数は、関数/メソッドの特定の呼び出し中にこれらのパラメータに割り当てられた値です。

7
Johan

あるいは、メソッドのオプションの引数がある場合は、このように覚えておくほうがさらに簡単かもしれません。

public void Method(string parameter = "argument") 
{

}

parameterはパラメータ、その値、"argument"は引数です:)

7
nawfal

あなたが航空会社だとしましょう。あなたは飛行機を作ります。あなたはそれに座席を取り付けます。それからあなたは乗客で飛行機をいっぱいにして、それをどこかに送ります。乗客(またはむしろ、その時空間的に変更されたバージョン)は降りる。翌日、あなたは同じ飛行機と同じ座席を再利用しますが、今回は別の乗客がいます。

飛行機はあなたの機能です。

パラメータは座席です。

議論はそれらの席に入る乗客です。

6
XML

この例は役に立つかもしれません。

int main () {
   int x = 5; 
   int y = 4;

   sum(x, y); // **x and y are arguments**
}

int sum(int one, int two) { // **one and two are parameters**
   return one + two;
}
6
Saurabh Rana

用語は多少互換性があります。他の答えで説明されている区別は、関数の本体内で使用される名前の正式なパラメータと、値のパラメータという用語でより適切に表現されます。コールサイトで提供されます(仮引数および引数も一般的です)。

また、数学では、引数という用語がはるかに一般的であり、パラメータは通常まったく異なるものを意味します(ただしパラメータパラメトリック方程式のは、本質的には2つ以上の関数への引数です。

6
Marcelo Cantos

常に次のことを忘れないでください。 - 引数を受け取るときに引数を渡します。

6
HEMANT GIRI

はい!パラメータと引数にはさまざまな意味があり、次のように簡単に説明できます。

関数パラメータは、関数定義にリストされている名前です。

関数引数は、関数に渡された(受け取った)実際の値です。

4
anoNewb

引数はパラメータのインスタンス化です。

4
Paul Richter

コードなしの簡単な説明

「パラメータ」は非常に一般的で幅広いものですが、「引数:」は非常に具体的で具体的なものです。

例1:自動販売機 - Moneyがパラメータ、$ 2.00が引数

ほとんどのマシンは入力を受け取り、出力を返します。例えば、自動販売機は入力としてお金を取り、返品したものを出力として炭酸飲料を返します。その特定のケースでは、それはパラメータとして受け入れます:お金。

それから議論は何ですか?私がマシンに2.00ドルを入れたとしたら、引数は次のとおりです。2ドル - それは使用される非常に特定の入力です。

例2:自動車 - ガソリンがパラメーターです

車を考えてみましょう:彼らは入力としてガソリン(無鉛ガソリン)を受け入れます。これらのマシンはパラメータをタイプ:ガソリンで受け付けることができます。議論は私が私の車に入れた正確で具体的な入力になります。例えば私の場合は、40リットルの無鉛ガソリン/ガソリンです。

例3 - 引数についての説明

引数は、入力の特定の具体例です。私のマシンが人を入力として受け取り、それを嘘つきではない人に変えるとしましょう。

それでは、引数は何ですか?議論は実際に機械に入れられている特定の人になるでしょう。例えばColin Powellが機械に入れられるならば、議論はColin Powellでしょう。

そのため、パラメータは抽象的概念としての人になりますが、引数は常に特定の人になります特定の名前を持つ人がマシンに入れられます。議論は具体的かつ具体的です。

それが違いです。簡単です。

混乱した?

コメントを投稿して、説明を直します。

4
BKSpurgeon

どちらもC言語の使い方に大きな違いはなく、どちらの用語も実際に使用されています。多くの場合、引数は関数と共に使用されます。関数呼び出しステートメントで渡される値は引数と呼ばれます。そして、パラメーターは関数定義内の値をコピーする変数になります(仮パラメーターと呼ばれます)。

int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;

   /* calling a function to get max value */
   ret = max(a, b);

   printf( "Max value is : %d\n", ret );

   return 0;
}

/* function returning the max between two numbers */
int max(int num1, int num2) 
{
   /* local variable declaration */
   int result;

   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

上記のコードでは、num1num2は仮パラメータであり、abは実際の引数です。

3
Bevin Sunth

あるいはもっと単純な...

!の引数

パラメータアウト!

3
jpillora

論理的に言えば、私たちは実際に同じことについて話しています。しかし、このジレンマを解決するには、単純な比喩が役立つと思います。

比喩をさまざまな接続点と呼ぶことができれば、それらを壁の差し込み点と見なすことができます。この場合、次のようにパラメータと引数を検討できます。

パラメータはさまざまなプラグインのソケットです。さまざまな形しかし、特定の種類のプラグだけがそれらに適しています
引数が実際のプラグになります。特定の機器を起動するために、プラグ/ソケットに差し込まれていること

3
nuwnjay

OracleのJavaチュートリアルでは、この区別を次のように定義しています。「パラメータとは、メソッド宣言内の変数のリストを指します。引数は、メソッドが呼び出されるときに渡される実際の値です。型と順序で」

パラメータと引数の詳細な説明: https://docs.Oracle.com/javase/tutorial/Java/javaOO/arguments.html

3
J. Clarke

Javaでメソッド(関数)を作成するとき、このようなメソッドは..

data-type name of the method (data-type variable-name)

かっこ内では、これらはパラメータであり、メソッド(関数)を呼び出すときに、このパラメータの値を渡します。これを引数と呼びます。

2
Summra Umair

JosephのAlabahariの著書「一言で言えばC#」(C#7.0、p。49)によると、

static void Foo (int x)
{
    x = x + 1; // When you're talking in context of this method x is parameter
    Console.WriteLine (x);
}
static void Main()
{
    Foo (8); // an argument of 8. 
             // When you're talking from the outer scope point of view
}

一部の人間の言語(イタリア語、ロシア語など)では、これらの用語に同義語が広く使用されています。

  • パラメータ=仮パラメータ
  • 引数=実パラメータ

私の大学では教授は両方の種類の名前を使います。

2
burzhuy

パラメータは関数定義内の変数です
引数はパラメータのです

<?php

    /* define function */
    function myFunction($parameter1, $parameter2)
    {
        echo "This is value of paramater 1: {$parameter1} <br />";
        echo "This is value of paramater 2: {$parameter2} <br />";
    }

    /* call function with arguments*/
    myFunction(1, 2);

?>
2
antelove

パラメータは、関数が使用するために関数に渡されるデータを格納するために使用される変数です。 引数は、呼び出されたときに関数に渡される実際のデータです。

// x and y are parameters in this function declaration
function add(x, y) {
  // function body
  var sum = x + y;
  return sum; // return statement
}

// 1 and 2 are passed into the function as arguments
var sum = add(1, 2);
0
Rejaul Karim

Parameter(computer programming) - Wikipedia で完全に説明されています。

大まかに言って、パラメータは型、引数はインスタンスです。

関数定義f(x) = x*xでは、変数xはパラメータです。関数呼び出しf(2)では、値 `` 2は関数の引数です。

And パラメータ - ウィキペディア

コンピュータプログラミング では、 パラメータ という2つの概念が一般的に使用されています。 パラメータおよび引数 - またはより正式には仮パラメータおよびとして参照されます。 ]実パラメータ

たとえば、次のような関数の定義では

y = f(x) = x + 2,

xは、定義された関数の仮パラメータパラメータ)です。

以下のように、関数が与えられた値に対して評価されるとき

f(3): or, y = f(3) = 3 + 2 = 5,

定義済み関数による評価のための実パラメータ引数)。定義された関数の仮パラメータに代入されるのは、与えられた値(実際の値)です。 (通常の使用法では、パラメーターおよび引数が誤って交換され、それによって誤って使用されることがあります。

0
DummyHead

基本に立ち返る必要があります。コンストラクタとメソッドの両方にパラメータと引数があります。多くの人がコンストラクタの特別な種類のメソッドを呼び出します。これがメソッドの宣言方法ですパラメータが使用されます

      type name(parameters){
           //body of method
          }

そして、これがコンストラクターの宣言方法ですパラメーターが使用されます

classname(parameters){
//body
}

次に、キューブの体積を計算するためのサンプルコードを見てみましょう。

public class cuboid {
    double width;
    double height;
    double depth;

      cuboid(double w,double h,double d) { 
      //Here w,h and d are parameters of constructor
       this.width=w;
       this.height=h;
       this.depth=d;
       }

        public double volume() {
        double v;
        v=width*height*depth;
        return v;
        }
        public static void main(String args[]){
           cuboid c1=new cuboid(10,20,30);
           //Here 10,20 and 30 are arguments of a constructor
           double vol;
           vol=c1.volume();
           System.out.println("Volume is:"+vol);

           }
    }

したがって、コードの後半のどこかでオブジェクトのコンストラクター/メソッドを呼び出すと、パラメーターではなく引数を渡すことがわかります。したがって、パラメーターは、論理オブジェクトが定義されている場所に限定されますが、オブジェクトが実際に作成されます。

0
Manas Singh

関数の仮パラメータは関数宣言にリストされており、関数定義の本体で使用されています。正式なパラメータ(任意の種類の)は、関数が呼び出されたときに何かで埋められる一種の空白またはプレースホルダです。

引数は、仮パラメータを埋めるために使用されるものです。関数呼び出しを書き留めると、引数は関数名の後の括弧内にリストされます。関数呼び出しが実行されると、仮引数に対して引数がプラグインされます。

値による呼び出しおよび参照による呼び出しという用語は、プラグインプロセスで使用されるメカニズムを表します。 。値による呼び出し方法では、引数の値のみが使用されます。この値による呼び出しメカニズムでは、仮パラメータは対応する引数の値に初期化されるローカル変数です。参照による呼び出しメカニズムでは、引数は変数であり、変数全体が使用されます。参照による呼び出しメカニズムでは、仮変数に代入された変更が実際には引数変数にも行われるように、仮引数に代入変数が代入されます。

0
gay

パラメータは、関数によって受け取られる変数です。それらが関数宣言内に表示されることに注意してください。それらは、そのデータ型とともに変数名を含みます。引数は他の関数に渡される実際の値です。それが、関数呼び出しでそれらを見ることができる理由です。それらはデータ型のない単なる値です

0
shreesh katti

私はそれを考え抜いて、私の以前の答えが間違っていたことに気づいた。これはもっと良い定義です。

{卵のカートンを想像してみてください:ソーセージリンクのパック:そしてメイド}これらは準備に必要な関数の要素を表します:(任意の名前を使用してください) :料理は私の機能の名前であると言うことができます)。

メイドは方法です。

(朝食をとるには__call_またはこのメソッドを要求する必要があります)(朝食をとるという行為は関数と呼ばれる料理)_

卵とソーセージはパラメータです。

(卵の数と食べたいソーセージの数は__variable_です。)_

あなたの決断は引数です:

それはあなたが調理している卵やソーセージの選択された数の_値_を表します。

{ニーモニック}

「あなたがメイドに電話をして朝食をとるように頼んだとき、彼女はあなたが何個の卵とソーセージを食べるべきかについてあなたと一緒に主張します。彼女はあなたのコレステロールを心配しています」__

(引数は、あなたが宣言し、あなたの関数に渡すことに決めたパラメータの組み合わせの値です)

0
marcusjetson