タグ

stackに関するamachangのブックマーク (2)

  • 変数の局所化、local宣言の挙動を掴む - web newbie

    local宣言。 変数を局所化する宣言、と説明されているが、どうもピンとこなかった。。そこで、ちょっとlocalについてまとめてみました。 Catalystのsetupメソッド内でもlocalが使われています。local宣言がなぜ必要だったのか。また、そのときの内部の挙動はどうなるのか。 これを理解することで、localの持つ意味も掴んでしまいましょう! ※って間違ってたらごめんさい。 それでは、注目すべきCatalyst.pmのsetupメソッドを見てみましょう。 メソッドの構造は以下のようになっています。 setup { my ( $class, @arguments ) = @_; $class->log->warn("Running setup twice is not a good idea.") if ( $class->setup_finished ); .... $clas

    変数の局所化、local宣言の挙動を掴む - web newbie
    amachang
    amachang 2007/02/06
    local によって変数を一時退避しているのではなく、 local によってスタック上にデータを追加しているんじゃないかなあ?僕もこの辺知りたい
  • Kazuho@Cybozu Labs: JavaScript で Generic Programming

    « Japanize 拡張機能 0.7.1 リリースのおしらせ | メイン | OSS コンファレンスで講演 » 2006年10月16日 JavaScript で Generic Programming 再帰呼び出しのスタック間でデータを共有する場合は、以下のように仮引数を使わなければならない。 IT戦記 - Perl で再帰呼出し時のスタック間データ共有 について、弾さんがクロージャを使って解決する方法を提示されています。それはそれでいいと思うのですが、JavaScript の場合は、もうひとつの書き方があります。Function.prototype.call を使う手です。 function count_tags(node) { return (function (node) { var kids = node.childNodes; for (var i = 0; i < kids.

  • 1