在Ruby中,方法定義的要點(diǎn)如下:
def
開始,后跟方法名。方法名通常遵循駝峰命名法(CamelCase),即每個(gè)單詞的首字母大寫,除了第一個(gè)單詞。def my_method
# 方法體
end
def my_method(arg1, arg2)
# 方法體
end
def my_method
# 不需要參數(shù)的方法
end
&
符號(hào)表示,用于接收方法的代碼塊。def my_method(arg1, arg2, &block)
# 方法體
end
end
關(guān)鍵字結(jié)束,將方法定義與方法調(diào)用分開。def my_method
# 方法體
end
my_method
def my_method(arg1, arg2)
result = arg1 + arg2
puts result
end
self
關(guān)鍵字引用當(dāng)前對(duì)象。在實(shí)例方法中,self
表示調(diào)用該方法的對(duì)象;在類方法中,self
表示類本身。class MyClass
def my_instance_method
puts self.class
end
def my_class_method
puts self
end
end
def
關(guān)鍵字定義一個(gè)實(shí)例方法,使用class << self
定義一個(gè)類方法。類方法屬于類本身,而不是類的實(shí)例。class MyClass
def my_instance_method
puts "This is an instance method."
end
class << self
def my_class_method
puts "This is a class method."
end
end
end
module
關(guān)鍵字定義一個(gè)模塊(Module),模塊可以包含方法和常量。模塊可以被其他類或模塊包含,以實(shí)現(xiàn)代碼的復(fù)用和模塊化。module MyModule
def my_method
puts "This is a method in a module."
end
end
class MyClass
include MyModule
end
my_class = MyClass.new
my_class.my_method