为什么ruby会在&def;' def'内部对待变量。和' define_method'?

时间:2018-03-19 09:44:31

标签: ruby

Ruby在defdefine_method内部对待局部变量的方式不同:

class MyClass
  y = 2
  def foo
    y ||= 0
    puts y
  end

  define_method :bar do
    y ||= 0
    puts y
  end
end

my_class = MyClass.new
my_class.foo # => 0
my_class.bar # => 2

我想知道为什么。

0 个答案:

没有答案