在Ruby中,方法定义的要点如下:
- 方法定义以关键字
def
开始,后跟方法名。方法名通常遵循驼峰命名法(CamelCase),即每个单词的首字母大写,除了第一个单词。
def my_method # 方法体 end
- 在方法名后面,可以使用可选的参数列表。参数列表用圆括号括起来,参数之间用逗号分隔。如果方法不需要参数,可以留空。
def my_method(arg1, arg2) # 方法体 end def my_method # 不需要参数的方法 end
- 在参数列表后面,可以使用可选的块参数。块参数用
&
符号表示,用于接收方法的代码块。
def my_method(arg1, arg2, &block) # 方法体 end
- 方法体以
end
关键字结束,将方法定义与方法调用分开。
def my_method # 方法体 end my_method
- 在方法体内,可以使用变量、常量、表达式和调用其他方法等。方法体内的代码块可以用缩进表示。
def my_method(arg1, arg2) result = arg1 + arg2 puts result end
- 可以使用
self
关键字引用当前对象。在实例方法中,self
表示调用该方法的对象;在类方法中,self
表示类本身。
class MyClass def my_instance_method puts self.class end def my_class_method puts self end end
- 可以使用
def
关键字定义一个实例方法,使用class << self
定义一个类方法。类方法属于类本身,而不是类的实例。
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
关键字定义一个模块(Module),模块可以包含方法和常量。模块可以被其他类或模块包含,以实现代码的复用和模块化。
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