同値比較の整備
akanehara opened this issue · 2 comments
akanehara commented
EqualityComparer を導入し、Lookup のあり方も再検討する。また、同値比較を必要とする機能がオプションで比較関数をとれるように拡張する。
akanehara commented
Lookupの内部実装をただの配列からEqualityComparerをとるDictionaryで置き換えることで、結合やグループのキーに配列やオブジェクトを使えるようになった。カスタム同値比較をとるGinqメソッド引数の拡張はいったん後回し。
akanehara commented
GroupByの結果はGroupingGinqを反復するGinqに。GroupingGinqはふつうのGinqに ->key() メソッドが追加されてるだけ。相変わらずセレクタ関数の第2引数にもキーは入るので、いまの時点で互換性は保てているはず。ただし、キーに配列やオブジェクトがくる状態でそのまま反復したりtoArrayするとPHPの警告が出る。Iteratorのkey()メソッドの戻り値が scalar だから。