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 に答える