默认参数和多参数

Ruby 允许你指定参数的默认值。可以使用通常的赋值运算符在方法的参数列表中指定默认值:

  1. def aMethod( a=10, b=20 )

如果将未赋值的变量传递给该方法,则将为其分配默认值。但是,如果传递了赋值的变量,则为其赋的值优先于默认值:

  1. def aMethod( a=10, b=20 )
  2. return a, b
  3. end
  4. p( aMethod ) #=> displays: [10, 20]
  5. p( aMethod( 1 )) #=> displays: [1, 20]
  6. p( aMethod( 1, 2 )) #=> displays: [1, 2]

在某些情况下,方法可能需要能够接收不确定数量的参数 - 例如,处理可变长度的项列表的方法。在这种情况下,您可以“删除”任意数量的尾随参数,然后在最后一个参数前面加上星号:

default_args.rb
  1. def aMethod( a=10, b=20, c=100, *d )
  2. return a, b, c, d
  3. end
  4. p( aMethod( 1,2,3,4,6 ) ) #=> displays: [1, 2, 3, [4, 6]]