3
爲什麼Binding#eval
調用該塊,但Kernel#eval
不?內核#eval和Binding#eval之間的區別紅寶石
def bar; binding; end
bi = bar {|x| p(x+1)}
bi.eval "yield 2" # ==> 3
eval "yield 2", binding # ==> LocalJumpError
爲什麼Binding#eval
調用該塊,但Kernel#eval
不?內核#eval和Binding#eval之間的區別紅寶石
def bar; binding; end
bi = bar {|x| p(x+1)}
bi.eval "yield 2" # ==> 3
eval "yield 2", binding # ==> LocalJumpError
我認爲,在第五行,第二個參數必須是「雙向」:
$ ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
1 def bar; binding; end
2 bi = bar {|x| p(x+1)}
3
4 bi.eval "yield 2" #==> 3
5 eval "yield 2", bi #==> 3
你是如何配置你的IRB,因爲我看到你的行號爲it.Any幫助?配置相同? :) – 2013-03-27 03:48:35
我沒有配置irb,我只是在我的評論中添加了行號,以便更好地理解:) – 2013-03-27 06:01:07
Ohhk !!我認爲它的自動:) – 2013-03-28 04:22:09