Ruby 中如何设置方法参数的默认值?

· 约 4 分钟读完 · 第 58 / 199 章

推荐答案

在 Ruby 中,可以通过在方法定义时为参数指定默认值来设置方法参数的默认值。具体语法如下:

在这个例子中,name 参数的默认值是 "Guest"。如果调用 greet 方法时没有传递参数,name 将使用默认值 "Guest"。

本题详细解读

1. 默认参数的基本用法

在 Ruby 中,方法参数的默认值是通过在参数名后使用 = 符号来指定的。如果调用方法时没有传递该参数,Ruby 会自动使用默认值。

在这个例子中,tax_rate 参数的默认值是 0.1。如果调用 calculate_total 方法时只传递了 price 参数,tax_rate 将使用默认值 0.1。

2. 多个默认参数

Ruby 允许为多个参数设置默认值。需要注意的是,默认参数通常放在参数列表的末尾。

在这个例子中,age 和 country 参数都有默认值。如果调用 register_user 方法时只传递了 name 参数,age 和 country 将分别使用默认值 30 和 "USA"。

3. 默认参数与关键字参数

Ruby 2.0 引入了关键字参数,可以与默认参数结合使用。

在这个例子中,age 和 country 是关键字参数,并且都有默认值。调用 create_profile 方法时,可以只传递 name 参数,或者选择性覆盖 age 和 country 的默认值。

4. 默认参数的注意事项

  • 默认参数的位置:默认参数通常放在参数列表的末尾,以避免在调用方法时产生歧义。
  • 默认值的计算:默认值在方法定义时计算,而不是在方法调用时计算。因此,如果默认值是一个可变对象(如数组或哈希),它将在所有方法调用之间共享。

在这个例子中,list 参数的默认值是一个空数组。由于默认值在方法定义时计算,所有调用 add_item 方法时都会共享同一个数组。