关键字参数

关键字参数在 Ruby 2.0 中引入,并在 Ruby 2.1 中进行了改进,增加了必需的关键字参数。

使用关键字参数的简单方法如下所示:

def say(message: "Hello World")
  puts message
end

say
# => "Hello World"

say message: "Today is Monday"
# => "Today is Monday"

作为提醒,没有关键字参数的相同方法将是:

def say(message = "Hello World")
  puts message
end

say
# => "Hello World"

say "Today is Monday"
# => "Today is Monday"

Version < 2.0

你可以使用 Hash 参数在以前的 Ruby 版本中模拟关键字参数。这仍然是一种非常常见的做法,特别是在提供与 2.0 之前的 Ruby 版本兼容的库中:

def say(options = {})
  message = options.fetch(:message, "Hello World")
  puts 
end

say
# => "Hello World"

say message: "Today is Monday"
# => "Today is Monday"