我正在通过 Ruby Koans 进行工作。
The test_the_shovel_operator_modifies_the_original_string
公案中about_strings.rb包括以下评论:
Ruby 程序员倾向于使用铲子运算符 (
我的猜测是它涉及速度,但我不明白引擎盖下的动作会导致铲子操作员更快。
有人可以解释一下这个偏好背后的细节吗?
Proof:
a = 'foo'
a.object_id #=> 2154889340
a << 'bar'
a.object_id #=> 2154889340
a += 'quux'
a.object_id #=> 2154742560
So <<
更改原始字符串而不是创建新字符串。这样做的原因是在 ruby 中a += b
是语法简写a = a + b
(其他的也一样<op>=
运算符),这是一个赋值。另一方面<<
是一个别名concat()
这会就地改变接收器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)