当Array已经是Enumerable时,为什么要使用Array#to_enum?

时间:2013-09-27 14:43:14

标签: ruby arrays

据我所知,Array类已经混合在Enumerable模块中。

如果是这样,为什么不存在[:example].next

为什么我需要将其设为[:example].to_enum.next

2 个答案:

答案 0 :(得分:7)

to_enumEnumerable无关,它会返回EnumeratorArray没有next方法,因为nextEnumerator方法,而不是Enumerable方法。

答案 1 :(得分:3)

因为Enumerable moduleEnumerator class不同。

“可枚举”意味着该类获得了一堆创建“枚举器”的免费方法。与Java的IterableIterator接口进行比较。