Friday, 15 February 2013

difference between Kernel#eval and Binding#eval in Ruby -


क्यों बाइंडिंग # eval ब्लॉक को कॉल करता है, लेकिन कर्नेल # eval नहीं है? <पूर्व> def बार; बाध्यकारी; अंत बी = बार {| x | पी (एक्स + 1)} द्विवार्षिक "उपज 2" # == & gt; 3 eval "yield 2", बंधन # == & gt; मुझे लगता है कि पांचवें लाइन पर दूसरा तर्क 'द्वि' होना चाहिए:

<पूर्व> $ ruby ​​-v ruby ​​2.0.0p0 (2013-02-24 संशोधन 39474) [x86_64-linux] 1 def बार; बाध्यकारी; अंत 2 बाई = बार {| x | पी (एक्स + 1)} 3 4 द्विवार्षिक "उपज 2" # == & gt; 3 5 eval "yield 2", द्वि # == & gt; 3

No comments:

Post a Comment