Ruby相当于JS

时间:2017-03-07 18:39:17

标签: javascript ruby

Ruby中的表达式是否等同于JavaScript:

myHash[id] = myHash[id] || {};

这通常在尝试将数组或散列附加到现有数组或散列时使用,但我们不知道它是否已经创建或是第一次迭代。

2 个答案:

答案 0 :(得分:2)

在Ruby中,此代码实际上与JavaScript中的代码相同:

myHash[id] = myHash[id] || {}

话虽如此,更有说服力的方式是:

myHash[id] ||= {}

答案 1 :(得分:0)

虽然这些是等价的:

my_hash[:id] = my_hash[:id] || {} 
my_hash[:id] ||= {} 

你会发现这很有用:

require 'fruity'

my_hash = {}

compare do
  test1 { my_hash[:id] = my_hash[:id] || {} }
  test2 { my_hash[:id] ||= {} }
end

# >> Running each test 32768 times. Test will take about 1 second.
# >> test2 is faster than test1 by 2x ± 0.1

在两者之间,第二个test2是惯用的Ruby,因此,虽然速度的差异很小,但它会加起来。它也是Ruby方式。