タグ

ブックマーク / blog.tojiru.net (4)

  • やり直しC言語:複雑な宣言の読み方

    C言語は宣言文が非常に読みにくいことで有名で、後発のGo言語はこれを批判して宣言の構文を変えています。私もずっと読むのが苦手だったのですが、私の頭が悪いのではなく、C言語の仕様がヘン、ということらしい。 今まで飽きるほどこの手の解説は書かれてきてるわけですが、自分なりにまとめないと覚えた気がしないので、あえてまとめておきます。ここに書いてある内容は、「C言語ポインタ完全制覇」に詳しく書いてあります。 型の派生 C言語では、int, char, floatなどの基型から、配列やポインタを派生していくことができます。対象を並べたものが配列で、対象を指し示すのがポインタです。 配列やポインタからも配列やポインタを派生できるので、派生パターンは無限に存在します。 int int の配列 int の配列 の配列 ... int へのポインタ int へのポインタ へのポインタ ... int への

    やり直しC言語:複雑な宣言の読み方
  • newを封印して、JavaScriptでオブジェクト指向する(1)

    以下はプロトタイプ的継承だけで一通りの機能を実現できる、という一つの例です。もちろん他にも書き方はありますし、newを使うのがよくないと主張しているわけではないです。 (誤解を生みそうな文体が混じっているようなので追記: 2011/5/14) 春ですし、少し初心者向けの記事を書きます。タイトル通り、JavaScriptのオブジェクト指向について。ちょっと長くなるので目次です。 クラス(に相当するオブジェクト)を作る オブジェクトからオブジェクトを作る(インスタンス化) 単一継承 多重継承 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ JavaScript標準のオブジェクト指向といえばnewやらprototypeやらを書く必要がありますが、これらは書くのが面倒臭い上に気をつけないといけない点がたくさんあります。Ja

    newを封印して、JavaScriptでオブジェクト指向する(1)
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
  • JavaScript:undefined値の判定

    JavaScriptでは初期化されていない変数には全て「undefined」という値が入っています。 var a; alert(a); //undefinedが入っている これを利用して、変数が定義済みかどうかを判別することが可能です。…が、やり方がいろいろあるみたいなので、まとめてみることにします。 undefinedと比較する if (a === undefined) { alert("aは未定義"); } グローバル変数として、そのまんまundefinedという名前の変数が用意されているので、それと比較するやり方。一番素直な方法ですが、JavaScriptにおいては良くない書き方とされています。 undefinedは予約語ではなく、単なる変数です。だから上書きすることができるし、関数スコープ内で同名のローカル変数を作ることもできます。(ただし最近の処理系ではconst扱いになって上書

    JavaScript:undefined値の判定
  • 1