web-dev-qa-db-ja.com

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

その概念的な質問。しかし、適切な場所で適切な用語を使用したいと思います。これが私がこれについて他の見解を読みたい理由です。

3
Cemre Uludag

素人の言葉で:

  • 関数をブラックボックスとして想像してください。
  • ブラックボックスの仕組みがわかりません
  • ブラックボックスの機能はわかっているだけで、
  • ブラックボックスには、何かを提供する必要があります
  • ブラックボックスはあなたに見返りとして何かを与えます
  • あなたがブラックボックスを提供することはパラメータです
  • ブラックボックスが機能するために使用する、知らない情報は変数です
  • しかし、ちょっと!、あなた(呼び出し元)にとって、ブラックボックスに与えるものは、あなた自身の変数であり、あなたがあなた自身の仕事をするために使用します。
  • ブラックボックスにリテラルを指定することもできます。つまり、変数personNameを渡す代わりに、「Peter」を渡すことができます。ブラックボックスでは、変数またはリテラルのどちらを渡したかがわかりません。ブラックボックス内に入ると、ブラックボックスの観点から見ると変数です。
  • 最後に、ブラックボックスは "戻り値"と呼ばれるものを返します。これは、変数または独自のものに入れるか、入れないか、またはパラメーターとして別のボックスに渡すことができます。
  • 一部のブラックボックスでは、何も渡す必要がありません。
  • 一部のブラックボックスは何も返さず、人々はそれらを「メソッド」と呼んでいます。
  • 一部の人々はパラメータを「引数」と呼びます。
2

パラメータは、メソッド内にのみ存在する変数であり、メソッドに渡された値で自動的に初期化されます。

1
Doval

パラメータは特殊なタイプの変数として使用できますが、基本的な違いはscope:変数はローカル(現在のメソッド内にのみ存在)であるのに対し、パラメータは外部です:渡されます呼び出し元からメソッドに。つまり、パラメーターが参照によって渡される場合(基本的にすべてのオブジェクトタイプを含む)、メソッドが終了すると、パラメーターへの変更は呼び出し元のコードに反映されますが、ローカル変数に対して行われたことは、メソッドを超えて存続しません。 (もちろん、他の場所に渡されて保存されない限り)。

0
Mason Wheeler