タグ

リーディングに関するpascal256のブックマーク (1)

  • 第80回 ソースコードリーディングのコツ 関数突入編 - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、今回は、 関数に引数が渡るときの話を書きます。 変数を追うか追わないかそれが問題だ use strict; my $c = 1; hoge($c); こういうソースを見たとき、 $cの値がかわってたら大変だなぁ と思って hoge関数の中を読む事はまずない。 なぜかというと、 関数へは値のコピーしか渡らない「値渡し」だからである。 それに対して、 つぎのようになっていると「参照渡し(Perl的にはリファレンス渡し)」なので、 $cの内容がhoge関数の中で書き換えられる可能性があるのでhoge関数の中を読まなければならないだろう。 use strict; my $c = 1; hoge(\$c); ただ、値渡しの場合でも、hoge関数の中のロジックを理解しておかないと それ以降の部分を読むに苦労しそうならばhoge関数の中まで目を通しておかないといけないだろう。 目も当てられない状況

    第80回 ソースコードリーディングのコツ 関数突入編 - bingo_nakanishiの他言語出身者のためのPerl入門
    pascal256
    pascal256 2009/03/10
    まあ、参照渡しでも普通は引数の変更はしないけどねー。キモいから。
  • 1