在Ruby中object.method(a,b)和方法(a,b)之间有什么区别?

我是编程新手,我正在努力学习Ruby。 我现在无法理解方法。 我理解:

方法允许我执行一大块代码而不必重写它,这样的方法如下所示:

example_method 

参数允许我将值传递到方法中的代码中,该代码位于方法中定义的占位符的位置。 这样我就可以用不同的输入执行一组代码。 带参数的方法如下:

 example_method( x , y ) 

但我对一个对象的方法实例化实际上在做什么感到困惑。 例如:

 object.example_method( x, y ) 

这是什么意思? 为什么方法附加到具有句点符号的对象? 我们这样做是为了能在方法中引用对象的实例 / 类变量吗? 有没有其他理由这样做?

例如,如果:

 def example_method(x , y) x * y end 

object.exaple_method(a , b)是否与example_method(a , b)

感谢您的帮助,对不起,如果我不清楚的话。

Ruby是一种面向对象的语言。 这意味着对象不仅具有成员(= state),还具有方法(= behavior)。 当您在对象上调用方法时(对象称为调用方 ),运行的方法是与此对象的类型行为相对应的方法。

当您调用没有调用者的方法时, self隐式地是调用者。 从irb, self被认为是main或全球范围。

例:

 def my_method(a) "#{a} from main" end class A def my_method(a) "#{a} from A" end end class B def my_method(a) "#{a} from B" end end a = A.new b = B.new my_method(1) # => "1 from main" a.my_method(1) # => "1 from A" b.my_method(1) # => "1 from B" 

如果我正确地假设你问的是类方法和实例方法

 def Object def self.example_method(x, y) #this is a class method x * y end def example_method(x,y) #this is an instance method x * y end end 

所以现在我们在这里定义它们就是我们如何称呼它们

 #This called the class method Object.example_method(3,3) => 9 #To call the instance method we have to have an instance object = Object.new object.example_method(3,3) => 9