Ruby中这两种方法有什么区别?

Mes*_*ssi 2 ruby

Ruby中这两种方法有什么区别?

class Mod   

      def doc(str)
          ...
      end

      def Mod::doc(aClass) 
          ...
      end
end
Run Code Online (Sandbox Code Playgroud)

Sly*_*erZ 6

Mod::doc()
Run Code Online (Sandbox Code Playgroud)

是一种类方法,而

doc()
Run Code Online (Sandbox Code Playgroud)

是一个实例方法.以下是如何使用两者的示例:

class Mod   
    def doc()
        puts 1
    end

    def Mod::doc() 
        puts 2
    end
end

a = Mod.new
a.doc   #=> 1
Mod.doc #=> 2
Run Code Online (Sandbox Code Playgroud)

是一个与之比较的问题

self.doc()
Run Code Online (Sandbox Code Playgroud)