「引数」と「パラメータ」という用語がどのように使用されているかについて、よく混乱します。これらは、プログラミングの世界では同じ意味で使用されているようです。
それらを使用するための正しい規則は何ですか?
「引数」と「パラメータ」という用語がどのように使用されているかについて、よく混乱します。これらは、プログラミングの世界では同じ意味で使用されているようです。
それらを使用するための正しい規則は何ですか?
パラメーターは関数によって入力として定義されるものであり、引数はパラメーターとして渡されるものです。
void foo(int bar) { ... }
foo(baz);
この例では、bar
は のパラメータですfoo
。baz
に渡される引数foo
です。
A Parameter is a variable in the declaration of a function:
functionName(parameter) {
// do something
}
An Argument is the actual value of this variable that gets passed to the function:
functionName(argument);
user1515422の場合、パラメーターと引数の違いを示す非常に具体的な例:
この関数について考えてみましょう。
int divide(int numerator, int denominator) {
return numerator/denominator;
}
2つのパラメータがあります: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の値は5」の省略形として「xは5」などと言うのが自然なため、混乱が生じる可能性がありますが、区別が明確であることが望まれます。
それは物事を明確にしますか?
引数は、サブルーチンを呼び出すときに使用するものです。パラメータは、サブルーチン内でアクセスしているものです。
argle(foo, bar);
foo
とbar
は引数です。
public static void main(final String[] args) {
args.length;
}
args
パラメータです。
この件については、ウィキペディアの記事のパラメーターにすばらしいセクションがあります。
つまり、パラメーターは関数によって定義された正式な名前であり、引数は実際の値 (5 など) または関数に渡されるもの (変数など) です。
ウィキペディアは信頼できる情報源とは言えませんが、用語の説明はきちんとしています。
パラメータは引数に、クラスはオブジェクトのインスタンスにあると言えると思います...
次のような関数を定義すると:
MyFunction(param1,param2) {
print parameter1, parameter
}
関数を定義するときにパラメーターを設定します。次のように関数を呼び出すと:
MyFunction('argument1', 'argument2');
パラメータの値を、渡した引数に設定します。引数は、質問を呼び出すときに質問に入れるものです。それが役に立ったことを願っています。
ほとんどの場合、プロシージャは呼び出された状況に関する情報を必要とします。反復または共有タスクを実行するプロシージャは、呼び出しごとに異なる情報を使用します。この情報は、呼び出し時にプロシージャーに渡す変数、定数、および式で構成されます。
この情報をプロシージャに伝えるために、プロシージャはパラメーターを定義し、呼び出し元のコードはそのパラメーターに引数を渡します。パラメータを駐車場、引数を自動車と考えることができます。さまざまな自動車がさまざまな時間に駐車場に駐車できるように、呼び出し元のコードは、プロシージャを呼び出すたびに、同じパラメーターにさまざまな引数を渡すことができます。
パラメーター
パラメーターは、呼び出し時にプロシージャーが渡すことを期待する値を表します。プロシージャの宣言は、そのパラメータを定義します。
FunctionまたはSub プロシージャを定義するときは、プロシージャ名の直後の括弧内にパラメーター リストを指定します。パラメータごとに、名前、データ型、および受け渡しメカニズム (ByVal または ByRef) を指定します。また、パラメーターがオプションであることを示すこともできます。つまり、呼び出し元のコードが値を渡す必要はありません。
各パラメータの名前は、プロシージャ内でローカル変数として機能します。パラメータ名は、他の変数と同じように使用します。
引数
引数は、プロシージャを呼び出すときにプロシージャ パラメータに渡す値を表します。呼び出し元のコードは、プロシージャを呼び出すときに引数を提供します。
FunctionまたはSub プロシージャを呼び出すときは、プロシージャ名の直後の括弧内に引数リストを含めます。各引数は、リスト内の同じ位置にあるパラメーターに対応します。
パラメータ定義とは対照的に、引数には名前がありません。各引数は式であり、0 個以上の変数、定数、およびリテラルを含めることができます。評価された式のデータ型は、通常、対応するパラメーターに定義されたデータ型と一致する必要があり、いずれの場合もパラメーター型に変換可能でなければなりません。
単純に大きな違いはありません。これを深く掘り下げると、差分を特定できます。主に、引数/パラメーター/署名がすべて同じであることがわかります。
基本的にParameter は、渡すデータのタイプを定義します。Argument は、 渡す実際のデータ/変数を定義します。
パラメータの例:-
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
変数は、格納場所であり、データ、値を含む関連する記号名 (識別子) です。
パラメータは、関数に渡される変数です。
引数は、関数に渡されるデータ (値) です。
$variable = 'data/value';
function first($variable){ ... }
function second('data/value'){ ... }
function third(16){ ... }
function first では、パラメーターを渡します。
関数 second と third では、引数を渡しています。
実際、パラメーターと引数はどちらも異なるタイプのパラメーターです。それらは
1) 仮パラメータ - 変数は関数/サブルーチン定義に表示されます
たとえば。(Javaで)
public void foo(Integer integer, String... s2)
ここで、integer と s2 はどちらも正式なパラメーターまたは大まかに言えばパラメーターです。
2) 実際のパラメーターまたは引数 - 変数は、呼び出し中にサブルーチンに表示されます。
定義済みサブルーチン
たとえば。(Java で) 関数 "foo" がオブジェクト "testObject" に存在する場合、
testObject.foo(new Integer(1), "test")
そのため、関数定義の変数は仮パラメーターまたは単にパラメーターと変数と呼ばれ、メソッドの呼び出しは実際のパラメーターまたは引数として呼び出されます。お役に立てば幸いです。
基本的な代数のように考えてください。X は入力する必要があるパラメーターであり、その中に配置する数字は引数です。したがって、X+2 のような方程式がある場合、X はパラメーターであり、X に対して変更した数値は引数として認識されます。したがって、その式を使用して x に 1 を追加すると、1+2 が得られます。つまり、1 は引数であり、X のパラメーターに提供されます。
同様に、dosomething("This") のような関数がある場合、その定義は dosomething(string parametername) になりますが、"This" は、ここでは parametername という名前のパラメーターに提供される実際の引数になります。
最も簡単に見ると、パラメーターは引数が埋めるものであり、引数はそのパラメーターで許可されている任意の数にすることができます。
したがって、上記の X+1 式のように、1 つのパラメーターに多くの有効な引数を指定できるため、パラメーターと引数の間の多対 1 の関係になります。X は既知の任意の数にすることができ、それらはすべて有効です。