必需的關鍵字引數

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>"