【发布时间】:2013-02-10 08:05:15
【问题描述】:
Ruby 2.0.0 支持关键字参数 (KA),我想知道这个特性在纯 Ruby 环境中的好处/用例是什么,尤其是考虑到由于关键字匹配需要每次调用带有关键字参数的方法时都会执行此操作。
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)
【问题讨论】:
标签: ruby named-parameters keyword-argument