ruby send 方法

用它可以在类的外面调用私有方法哟

  class MyClass
    private
    def get_name
      "i am ruby"
    end
  end
  mine = MyClass.new
  mine.get_name #NoMethodError: private method `get_name' called for #
  mine.send(:get_name)  # i am ruby

其实没有违背private的定义,send方法其实也是让private方法在当年对象的上下文中隐式的调用了

你可能感兴趣的:(ruby)