Thursday, October 09, 2008

(4)Ruby 中的方法method

Ruby 中方法用def关键字定义,方法的返回值是方法体的最后一个表达式的值,比如:
def square(x)   # 定义一个方法名为square,它有一个参数x
x*x # 返回x的平方
end # 结束方法

当一个方法定义在类或者模块之外,就像上面这个方法,那么它就是一个全局的函数,而不是一个类或者对象的方法。
方法也可以定义为一个独立对象的方法,我们可以通过增加对象前缀的方式实现:
def Math.square(x)  # 定义Math模块的类方法
x*x
end

事实上Math模块是Ruby的核心类型,这段代码给它增加了一个新的方法。这是Ruby的一个关键特性,即,类和模块是“开发的”,这意味着你可以在运行时对其进行扩展和修改。
另外要提到的一点是,方法的参数是可以指定默认值的,参数的个数是没有限制的。

No comments: