genericsについて moriyoshitさん と kazuhoさんに教わった

教わった
2
Moriyoshi Koizumi @moriyoshit

generics全く不要というのもgenericsないからダメというのも両方理解できない

2014-06-30 09:23:20
Yusuke Ando @yando

@moriyoshit C#のジェネリクスを昨日勉強したんですが、あれって基底クラスをメンバに持つとかじゃだめなんですかねぇ

2014-06-30 09:43:24
Moriyoshi Koizumi @moriyoshit

@yando どの文脈で使うかによりますが、基底クラスの構造が特定の問題領域のものに縛られるために汎用性を失うということはないでしょうか

2014-06-30 09:49:49
Moriyoshi Koizumi @moriyoshit

逆にいえばgenerics使わなくても解決できる問題はけっこうある、それでも使いたい理由は問題意識が別のところにあるからかな

2014-06-30 09:52:13
Kazuho Oku @kazuho

@moriyoshit @yando Interfaceを使って「名前で」明示する場合、あらかじめ合意が存在するもののみが連携可能となります。一方でGenericsのようなケースでは、型が適合していれば合意がなくとも使用可能になります。後者の柔軟性の高さが望まれることがあると

2014-06-30 09:57:55
Kazuho Oku @kazuho

nominal typingかstructural typingかってのはsubclass化に限らず、generics vs. interfaceでも同様なんだよねという

2014-06-30 09:59:03
Yusuke Ando @yando

@kazuho @moriyoshit 継承関係などで縛らなくても注入できる可能性を作るってことなんですね。型が適合していれば使えるっていう、やっぱりそういうことなんですね。

2014-06-30 10:00:04
Yusuke Ando @yando

10年以上、プログラミングを仕事にしていても議論のポイントが「型」になるあたり、「型」はディープな話題なんだなあ。知らないこともまだまだあるし。

2014-06-30 10:03:00
Moriyoshi Koizumi @moriyoshit

コンビニで会計中にそのものの回答があった kazuho++

2014-06-30 10:04:16
Moriyoshi Koizumi @moriyoshit

genericsが入るとコンパイルが遅くなる、っていうのはどうなんですかね。まだあんまり信じていない

2014-06-30 10:05:55
Kazuho Oku @kazuho

generics入れてもコンパイル遅くならないでしょう。型推論にしても、同一関数内に限るとかすればアリなんじゃないの

2014-06-30 10:06:43