- 推薦図書/必読書のためのスレッド 81 [無断転載禁止]©2ch.net
400 :デフォルトの名無しさん[sage]:2017/03/19(日) 10:50:23.88 ID:3j9rxESx - ちょっとまってドッグクラスにrunメソッドを埋め込むとき、問題が発生するでしょ
1.runはdogに特有のものではない 本来のユースケースとしては、dogやcatのコレクションに対してrunを実行するということになる これは暗に継承またはインタフェース宣言が必要となることを暗示している そしてrunというメソッドに継承構造を宛がう価値はあるのか、走れない動物もいるし、また階層に細分化が必要だ 従ってrunnableインタフェースを実装することになるだろう、まあ名前被ってるからIRunにしとこうか 2.catやその他Irunなアニマルクラスにrunを実装しないといけない めんどくさい、従ってインターフェースのデフォルト宣言を使うことにする ここで良く考えてほしいのだが、ただ動物達を走らせるためにここまでしないといけないのかということだ 一番いけてるシグニチャっていうのは run(Animals)であって foreach a in Animals a.run() ではないことは明らか ここで現代のプログラミング言語は基本的に名前空間をサポートしていることを忘れてはいけない 関数型の一つの解答はRunnabl名前空間にrun関数を配置し、それをimportして呼び出す タイプマッチングでもいいし、if文でのディスパッチでもいい 全く同じ問題はいろんな抽象化ができるけど、データ型が抽象性において関数に勝ることはないだろう
|
- ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net
6 :デフォルトの名無しさん[sage]:2017/03/19(日) 13:14:33.69 ID:3j9rxESx - 馬鹿が馬鹿に向けてコーチしてるから、いつまでたっても終わらんな
馬鹿は馬鹿の気持ちがわかるから教師に向いてるとかいうけど まともな言語使役能力がない馬鹿に教師が務まるわけねえだろバーカ 自分の馬鹿さ加減を正当化する以前に相手の立場、聞き手の立場になってライティングする技術を学べよバーカ
|
- ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net
14 :デフォルトの名無しさん[sage]:2017/03/19(日) 21:07:09.25 ID:3j9rxESx - まずは五目並べとかを目標にするべきだとおもうの
五目ならべとかくそつまんねえけど、最低限のゲームループははいってるわけでね おれも大学時代Cでかかされたけど、あれはマジ難しい インターフェース作るので精一杯で、CPUのAIはランダムに石をおくぐらいしかできんかったわ
|