Equalは型クラスです。
型クラスについては10日にやるScala会議で話す資料とか水島さんの死霊とか。
この型クラスは等しいという性質を与えます。
作り方
最初の方法はEqualのインスタンスを直接作るというもの。
二番目の方法はequalを使う方法。
equalは2つの値を受け取り、Booleanを返す述語を渡す。
三番目のequalAはequalをAnyの==を使って実装するというもの。
equalAとequalはEqualsに定義されており、Scalazがそれを継承しています。
この3つはどれも同じEqual[ScalaChan]が作られます。
Eqaulを利用した関数
===
/==
見た目通り等しい、等しくないを返す関数。
標準の==,!=と違うところは型安全というところ。
糖衣関数?もある。
Equalだけを利用した関数が少なすぎて物悲しいのでもう一個
assert_===
Unit TestライブラリによくあるassertEqual的なもの。
エラーメッセージがちょっとかっこいい。
この関数は値がEqualの他にShowのインスタンスを持つことが必要です。
基本的なEqualのインスタンスはEqualのコンパニオンオブジェクトに定義されています。
自分で定義したclassはequalやequalAでインスタンスを作っておきましょう。
0 件のコメント:
コメントを投稿