0
module MyMod
  def fun1
  #...
  end 

  def MyMod.fun2
  #...
  end
end

fun1 和 MyMod.fun2 有什么区别?

4

1 回答 1

4

fun1是一个实例方法。只有当任何类在其定义中包含该模块时才能访问它。

p RUBY_VERSION

module MyMod

  def fun1
  p "hi"
  end 

  def MyMod.fun2
  p "hello"
  end
end

class Foo
include MyMod
end
Foo.new.fun1
MyMod.fun2
p MyMod.instance_methods(false)
p MyMod.public_class_method("fun2")

输出:

"2.0.0"
"hi"
"hello"
[:fun1]
MyMod
于 2013-03-27T06:00:53.897 回答