第13回名古屋Scala
11/19 に、第13回名古屋Scala勉強会に参加してきました。
- 27章 オブジェクトを使ったモジュラープログラミング
- 28章 オブジェクトの等価性
- equals と ==
- 参照等価、等価、比較
- 実装する際には、意図しない再帰に注意 (C# ==(A a, object b) 内で、a == null 判定とか)
- null は Null 型 (Null型 : p196(11章))
- LSP
- bleis 先生による LSP 違反の例
- 値のセマンティクスを持っているクラスを継承可能にしていることがそもそもの問題
- 個人的には、そのクラスのインスタンスを生成できるクラスは継承を許したくない
- case class 素敵
- 継承も出来るっぽい
- でも継承すると LSP 違反の問題が・・・ (case class なら大丈夫?)
- hashCode
- Hashable インタフェース的なもの作って、Hash系データ構造で Hashable 要求すれば、いい感じに hashCode 強制できそうな
- commons 素敵
- タプルいい感じ (リストでもおk)
- equals と ==