ruby-on-rails – 文字和构造函数之间的区别? ([] vs Array.new和{} vs Hash.new)

我很想知道[]和Array.new和{}和Hash.new之间的更多差异

我在其上运行了相同的基准测试,并且看起来像是短剑是获胜者

require 'benchmark'

many = 500000

Benchmark.bm do |b|
  b.report("[]          \t") {many.times { [].object_id }}
  b.report("Array.new   \t") { many.times { Array.new.object_id }}
  b.report("{}          \t") {many.times { {}.object_id }}
  b.report("Hash.new\t") { many.times { Hash.new.object_id }}
end


                  user     system      total        real
[]            0.080000   0.000000   0.080000 (  0.079287)
Array.new     0.180000   0.000000   0.180000 (  0.177105)
{}            0.080000   0.000000   0.080000 (  0.079467)
Hash.new      0.260000   0.000000   0.260000 (  0.264796)

我个人喜欢使用速记的[]和{},代码看起来很酷和可读.

任何其他指针有什么区别呢?场景后面会发生什么,使它更好,并建议如果有什么时候使用哪个?

我发现这个link,但是正在寻找更多的信息.

干杯.

解决方法

使用Hash.new,您可以设置未设置密钥的散列值的认值.这是非常有用的,如果你正在进行统计,因为Hash.new(0)将让你增加键而不显式初始化它们.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...