値を渡していく
どうも!こんばんは!
クローバーフィールドの伊関でございます。
今日はもう梅雨入りしたんですかね。
この恐ろしい程の湿気と蒸し暑さ。。。。
あれ?まだ四月じゃん?ゴールデンウイークにも入ってないじゃん?
このまま暑くなっていくとか汗かきを〇しにかかってるとしか思えませんね。
明日は職場の歓迎会ですが多分精魂も汗も尽き果てておると思います。
明後日ITパスポートの試験だといふのに・・・。
まぁ頑張るしかないすね!
てことで本日は値渡しのお話し。
先日のメソッドの呼び出しの流れでもやりましたが、
今日はそれを詳しくやっていこうと思います。
値渡しとは・・・
引数の渡し方には「値渡し」「参照渡し」の2種類があります。
件の「メソッドの呼び出しの流れ」での用いてきた渡し方はすべて「値渡し」です。
値渡しでは、実引数の値は仮引数にコピーされるので、実引数と仮引数は別々にメモリ上に存在することになります。
仮引数の値を変更しても実引数の値は変化しません。
以下はその流れを図に表したものです。
参照渡しとは・・・
参照渡しとは、データの値そのものを渡す値渡しとは異なり、データへの参照情報を渡すものです。
参照情報を渡すので、メソッドから直接呼出し元の変数をアクセスすることになります。
つまり、メソッド側で仮引数の値を変更すると呼び出し元の変更数の値も変更されることになります。
参照渡しをするためには次の例のように「refキーワード」を実引数と仮引数の前につけて記述します。
・参照渡しは、このように呼び出し元のデータを書き換えてしまうので、通常は値渡しを使ってください。
ただ、2つの変数の値を入れ替えるような例では、参照渡しを使わない処理できません。
以上です。
今回は図を多用してみましたがいかがでしたでしょう。
やはり文章を読んでるだけではいまいち理解できないことも、
図としてトレースしてると大分理解できるようになってきますね。
そしてこれを実際にプログラムとして打ち込んでいくわけですが、
やはり理解してることと、実際に使うことは全く別物ですね。
まずは簡単なプログラムでもたくさん作って法則などを刷り込んでいかねば、
知識を技術として生かすのはかなり難しいのだと思います。
そしていつの日か自分の思うようにプログラムを組み、
仕事として胸を張れる日を夢見て・・・。
まぁ夢見てる暇なんてないんですけどね。仕事なんで。
とにもかくにも今年のゴールデンウィークは勉強漬け毎日になりそうですな。
では。