Questions tagged «dynamic-method»

5
Ruby中的动态方法调用
据我所知,有三种方法可以在Ruby中动态调用方法: 方法1: s = SomeObject.new method = s.method(:dynamic_method) method.call 方法2: s = SomeObject.new s.send(:dynamic_method) 方法3: s = SomeObject.new eval "s.dynamic_method" 通过对它们进行基准测试,我确定了方法1迄今为止最快,方法2较慢,方法3迄今为止最慢。 我还发现,.call和.send都允许调用私有方法,而eval不会。 所以我的问题是:有没有理由使用.send或eval?为什么您不总是使用最快的方法?这些调用动态方法的方法还有什么其他区别?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.