質問編集履歴
1
文法修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
mapやselectメソッドで、配列以外を返す書き方
|
body
CHANGED
@@ -13,10 +13,11 @@
|
|
13
13
|
end
|
14
14
|
```
|
15
15
|
|
16
|
-
ここで、一度`select`メソッドで絞った後に、同じCollectionとして返すために`HistoryCollection.new`をするのを見て「気持ち悪いな」と思
|
16
|
+
ここで、一度`select`メソッドで絞った後に、同じCollectionとして返すために`HistoryCollection.new`をするのを見て、自分は「気持ち悪いな」と思いました。
|
17
|
+
なので、これを無くせないかコードをいじろうとしてみました。
|
17
18
|
|
18
|
-
パッと思いついたのが、`Enumerable`をincludeすればいけるかなと思ったのですが
|
19
|
+
そこで、パッと思いついたのが、`Enumerable`をincludeすればいけるかなと思ったのですが
|
19
|
-
想定と違っていました。
|
20
|
+
想定と違っていましたので少し見てください。
|
20
21
|
|
21
22
|
```ruby
|
22
23
|
class HistoryCollection
|
@@ -36,6 +37,6 @@
|
|
36
37
|
|
37
38
|
実際やってみるとこの時の`select_by_name`の返り値は`Array`クラス。
|
38
39
|
|
39
|
-
|
40
|
+
`Enumerable`を`include`しても、`map`や`select`メソッドで返ってくる値がいつの間には`Array`に変わってしまいます。
|
40
41
|
|
41
|
-
集合を作るつもりで用意したのに、知らない間にクラスが変わってしまうのは辛いので、`map`や`select`などを実行した時に、同じクラスの集合を返すような書き方というのは無いのでしょうか?
|
42
|
+
集合を作るつもりで`Collection`の名前を冠するクラスを用意したのに、知らない間にクラスが変わってしまうのは辛いので、`map`や`select`などを実行した時に、同じクラスの集合を返すような書き方というのは無いのでしょうか?
|