Open aoyama-val opened 8 years ago
前回何があったんだ…
型じゃなくて演算子で、切り捨てるか切り捨てないかにしたPython3.0の考えは面白い。
「切り捨てるか切り捨てないかが計算対象の型で変わる」 → 人間が決めたデザイン
オブジェクト指向の2つの考え方。 スモールトークとかは、現実世界のモデリング的な考え C++とかは、構造体からの拡張。
第1のオブジェクト指向と第2のオブジェクト指向がある 第1のオブジェクト指向については11章にて
インターフェースは後から実装するための制限をつけるものより、 Rubyのダックタイピングのように、インターフェースをインプリメントしていればそれをパラメーターをとする機能を利用することが出来る。 ポリモフィズム?
List<String> strList = new ArrayList<String>();
strList.add("test1");
strList.add("test2");
List<Object> objList = new ArrayList<Object>();
objList = strList; // コンパイルエラー
ジェネリクスがないと、配列をソートするにも ・intの配列をソートする関数 ・doubleの配列をソートする関数 など型ごとに作らないといけないので非常に不便。
Cとかの場合は変数がどの型かというのはコンパイラだけが知っていて、 実行時にはその情報は誰も知らない。 Rubyとかはインタープリタがその情報を知っている。 だからRubyは実行時に「この変数の型は何?」と調べることができるし Cではできない。
すごい納得出来る情報。今日一テンションあがった 「Cとかの場合は変数がどの型かというのはコンパイラだけが知っていて、 実行時にはその情報は誰も知らない。」
青山正太郎 茂木友哉 山崎恭史