我们有一个 Enumerator::Lazy 对象
a = [1,2,3].lazy.map {} #=> <Enumerator::Lazy: #<Enumerator::Lazy: [1, 2, 3]>:map>
a.size #=> 3
a.clone.size #=> nil
有人对这种行为有正确的解释吗?我知道size
返回枚举器的大小,如果不能懒惰地计算,则返回 nil。当我们克隆对象时它返回
a.clone #=> <Enumerator::Lazy:<Enumerator::Generator:0x00007fdaa80218d8>:each>