パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

OpenSSLのコードの汚さに「サルが書いたコードだ」との批判 」記事へのコメント

  • by Anonymous Coward

    一度しか通らない道だから実行結果に問題はないんだけど、
    コードの途中に突然変数の宣言が現れてその変数を一時的に使ってたりとかなら・・・。
    あとプロシージャの中でGotoとGosubとか日常的に使いまくりだったりとか・・・。

    でもちゃんと動くからいいじゃない。
    人に見せるわけでもないしいいよね。
    どうせ見るのは自分だし・・・。
    的な思いからそのままになってます。

    • コードの途中に突然変数の宣言が現れてその変数を一時的に使ってたりとかなら・・・。

      え、これってダメなの?
      使う場所の近くで宣言する方がいいって思ってるんですが。

      • by Anonymous Coward

        VB使いのレベルのひどさが垣間見られるね。

        • VB使いのレベルのひどさが垣間見られるね。

          ちょっと待て、COBOLerなんだが...

          と言うのは置いといて、Cなどでは普通だと思うけどVBだと問題なのかな?

          • by Anonymous Coward

            JavaScriptだと明らかに問題ですね。関数の途中とかブロックの中で「var i;」とか宣言しても、あたかもすべて関数の先頭で宣言したかのように振る舞うというすごい特徴を持っています。複数回宣言すると1つにまとめられます。これはECMA-262で厳密に定められた仕様なのですが、宣言はすべて関数の先頭で行わないと一見不可解な動作をすることになります。C90(not C++)のように言語仕様で強制されているよりもたちが悪いです。
            というわけで「言語による」ような気がします。

            • by nox_dot (11614) on 2009年11月05日 23時29分 (#1666543) 日記

              JavaScriptは、暗黙の参照渡しなど、Cに慣れた人には罠が多いですよね。

              親コメント
              • by tietew (6130) on 2009年11月06日 16時55分 (#1667034) ホームページ

                参照渡し(call by reference)というと、C++/PHPのreferenceや、VB(Script)のByRef、Perlのような、変数そのものへの参照を意味することが多いです。その意味で言うと、JavaScriptは参照渡しではありません。

                void foo(int& a) { a += 1; } // call by reference

                int i = 1;
                foo(i);
                // i => 2

                JavaScriptは全てがオブジェクトです(Javaと違って整数等もオブジェクト。)から、「オブジェクトへの参照」の、値渡し(call by value)です。

                function foo(a) { a += 1; }    // call by value
                function bar(b) { b.push(1); } // call by value

                var i = 1, ary = [];
                foo(i);
                bar(ary);
                // i => 1, ary => [ 1 ]

                親コメント

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

処理中...