加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:17:25 所属栏目:百科 来源:网络整理
导读:我很想知道[]和Array.new和{}和Hash.new之间的更多差异 我在其上运行了相同的基准测试,并且看起来像是短剑是获胜者 require 'benchmark'many = 500000Benchmark.bm do |b| b.report("[] t") {many.times { [].object_id }} b.report("Array.new t") { many
我很想知道[]和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.newt") { 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)将让你增加键而不显式初始化它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读