ruby JRuby的枚举器#to_enum将实例变量重新绑定到另一个上下文?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby JRuby的枚举器#to_enum将实例变量重新绑定到另一个上下文?相关的知识,希望对你有一定的参考价值。
class BuggyEnumerator < Enumerator
def initialize(that)
@ivar = that
end
def each
return to_enum(:each) unless block_given?
@ivar.each{|item| yield item }
end
end
ruby-2.0.0-p195
> BuggyEnumerator.new([1,2,3]).each.to_a
=> [1, 2, 3]
> BuggyEnumerator.new([1,2,3]).each_entry.to_a
=> [1, 2, 3]
ruby-1.9.3-p327
> BuggyEnumerator.new([1,2,3]).each.to_a
=> [1, 2, 3]
> BuggyEnumerator.new([1,2,3]).each_entry.to_a
=> [1, 2, 3]
jruby-1.7.4
> BuggyEnumerator.new([1,2,3]).each.to_a
=> [1, 2, 3]
> BuggyEnumerator.new([1,2,3]).each_entry.to_a
NoMethodError: undefined method `each' for nil:NilClass
from (irb):7:in `each'
from org/jruby/RubyEnumerable.java:378:in `to_a'
from (irb):11:in `evaluate'
from org/jruby/RubyKernel.java:1093:in `eval'
from org/jruby/RubyKernel.java:1489:in `loop'
from org/jruby/RubyKernel.java:1254:in `catch'
from org/jruby/RubyKernel.java:1254:in `catch'
from …/.rvm/rubies/jruby-1.7.4/bin/irb:13:in `(root)'
以上是关于ruby JRuby的枚举器#to_enum将实例变量重新绑定到另一个上下文?的主要内容,如果未能解决你的问题,请参考以下文章
JRuby 的 Java 安全管理器
Jruby 线程上下文实例关联
帮助理解 Ruby 中的产量和枚举器
JRuby 1.7.26 发布,Java 的 Ruby 解释器
Ruby - 优雅地比较两个枚举器
ruby JRuby的YAML