Verwendung von Schlüsselwortargumenten oder benannten Parametern in Ruby

Ruby 2.0.0 unterstützt Schlüsselwortargumente (KA) und ich frage mich, welche Vorteile / Anwendungsfälle diese Funktion im Zusammenhang mit reinem Ruby bietet, insbesondere angesichts der Leistungseinbußen aufgrund der Schlüsselwortübereinstimmung, die in jedem Fall erfolgen muss Mal wird eine Methode mit Schlüsselwortargumenten aufgerufen.

require 'benchmark'

def foo(a:1,b:2,c:3)
  [a,b,c]
end

def bar(a,b,c)
  [a,b,c]
end

number = 1000000
Benchmark.bm(4) do |bm|
  bm.report("foo") { number.times { foo(a:7,b:8,c:9)  } }
  bm.report("bar") { number.times { bar(7,8,9) } }
end

#           user     system      total        real
# foo    2.797000   0.032000   2.829000 (  2.906362)
# bar    0.234000   0.000000   0.234000 (  0.250010)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage