ruby - 如何在 ruby​​ 中获取绑定(bind)到变量的实例方法?

标签 ruby methods

如何在变量中获取实例方法?例如:

class Foo
  def bar
    puts "bar"
  end
end

我希望能够操作“bar”实例方法(例如,传递它)。我该怎么做?

我知道我可以得到类常量

foo_class = Kernel.const_get("Foo")

有什么类似的方法可以得到 Foo#bar 吗?

最佳答案

看来你需要一个 UnboundMethod :

class Foo
  def initialize(value)
    @value = value
  end

  def bar
    @value
  end
end   

unbound_bar = Foo.instance_method(:bar)
p unbound_bar.bind(Foo.new("hello")).call
#=> "hello"

关于ruby - 如何在 ruby​​ 中获取绑定(bind)到变量的实例方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145007/

相关文章:

ruby-on-rails - Rails 4 - in_time_zone 意外行为

ruby - 迭代串联数组会更改原始数组中的项目。为什么?

ios - 未调用完成处理程序 - iOS

javascript - 推送方式显示不正确

methods - Go嵌入结构调用子方法而不是父方法

ruby - 测试 ruby​​ 中函数输入的所有组合的最佳方法

ruby-on-rails - Ruby - 转义括号

Ruby FileUtils mkdir_p 模式 - 意外结果

java - Java中的辅助方法是什么?

java - findWithingHorizo​​n 方法中的 Horizo​​n