📅  最后修改于: 2023-12-03 15:04:57.003000             🧑  作者: Mango
在 Ruby 中,方法可以定义具有可选参数的方法。这些参数可以在方法调用时被省略,并将被赋予默认值。这在编写通用方法时非常有用,因为它允许代码共享并降低重复性。
定义具有可选参数的方法,可以在参数名称后面加上默认值。例如,下面是一个简单的方法定义:
def greeting(name, message = 'Hello')
puts "#{message}, #{name}!"
end
在上面的示例中,message
参数有一个默认值 'Hello'
。这意味着,如果在调用方法时省略该参数,则将使用默认值。
接下来,我们可以调用 greeting
方法,以不同的方式为参数提供值:
greeting('Alice') #=> Hello, Alice!
greeting('Bob', 'Hi') #=> Hi, Bob!
如上所示,第一个调用省略了 message
参数,因此将使用默认值 'Hello'
。第二个调用传递了 'Hi'
作为 message
参数,并输出了不同的结果。
在定义具有可选参数的方法时,必须按照以下顺序声明参数:
*
符号来表示)例如,下面是一个带有多个参数的方法:
def foo(required, optional = 42, *rest)
puts "required: #{required}"
puts "optional: #{optional}"
puts "rest: #{rest.inspect}"
end
在上面的示例中,foo
方法具有三个参数:
required
optional
rest
我们可以调用 foo
方法,对每个参数进行不同程度的提供:
foo('hello') #=> required: hello, optional: 42, rest: []
foo('hello', 123) #=> required: hello, optional: 123, rest: []
foo('hello', 123, 'world', 'how', 'are', 'you') #=> required: hello, optional: 123, rest: ["world", "how", "are", "you"]
在上面的示例中,每个调用提供了不同数量的参数,但由于它们按照顺序提供,因此它们都可以正确地分配给相应的参数。
Ruby 的可选参数是编写通用方法的有用工具。使用默认值和剩余参数,允许我们编写可以适应不同情况的方法。此外,Ruby 允许定义具有默认值的多个参数,并允许我们创建方法接收可变数量的参数。