def aaa #### #### #### end
ruby的方法体内是普通的Ruby表达式,你不能在方法体内定义非单件类或模块。如果你在一个方法内定义另一个方法,内部的方法只有在外部方法执行时才得到定义。方法的返回值是执行的最后一个表达式的值,或者return表达式显示返回的值
如果你希望传入可变个数的参数、或者想用一个形参接收多个参数,在"普通"的参数名前放置一个星号(*)即可。
def varargs(arg1,*rest) "Got #{arg1} and #{rest.join(',')}" end varargs("one") ->"Got one and " varargs("one","two") ->"Got one and two" varargs("one","two","three") ->"Got one and two,three"
在这个示例中,和往常一样第一个参数赋值给方法的第一个形参。不过,第二个形参的前缀为星号,因此所有剩余的参数被装入到一个新的Array中,然后赋值给第二个形参。