1.方法的调用
对象.方法名(参数1,参数2,...) 可以省略参数列表的()
对象.方法名(参数1,...) do |变量1,变量2,...| 可以省略参数的()
块内容
end
对象.方法名(参数1,...){|变量1,变量2...| 只要在没有参数的时候才可以省略()
块内容
}
可以使用【*数组】作为参数,把数组中的元素依次赋给方法中的参数
散列作为参数时可以省略{}
2.方法的分类:实例方法、类方法、函数式方法
实例方法:以对象为接受者的方法,使用【对象.方法名(参数)】进行调用,在帮助文档中通过【方法:类名】进行标记
类方法:接受者不是方法而是类本身的方法,使用【类名.方法名(参数)】或者【类名::方法名(参数)】进行调用,在帮助文档中通过【类名.方法名】或者【类名::方法名】进行标记
函数式方法:不需要接受者的方法,使用【方法名(参数)】调用
注意:定义带块的方法是,可以使用yield关键字进行占位,如果yield部分有参数,程序会将其当作块变量进行传入。
def myfoo()
while true
yield("ss")
end
end
num=0
myfoo do |s|
print s,num
puts ""
if num>10
break
end
num+=2
end
关键字参数:在方法定义式指定参数的名称和默认值,def 方法名(参数1:值1,参数2:值2),调用时,可以把散列作为参数传入
为避免调用方法时指定了未定义的参数而报错,可以在参数末尾通过【**参数名】来接受未定义的参数