必需的关键字参数
Version >= 2.1
**** Ruby 2.1 中引入了必需的关键字参数,作为对关键字参数的改进。
要根据需要定义关键字参数,只需声明参数而不使用默认值。
def say(message:)
puts message
end
say
# => ArgumentError: missing keyword: message
say message: "Hello World"
# => "Hello World"
你还可以混合必需和非必需的关键字参数:
def say(before: "<p>", message:, after: "</p>")
puts "#{before}#{message}#{after}"
end
say
# => ArgumentError: missing keyword: message
say message: "Hello World"
# => "<p>Hello World</p>"
say message: "Hello World", before: "<span>", after: "</span>"
# => "<span>Hello World</span>"