我正在调试一些使用此运算符的代码,我不确定为何使用它。
它似乎将对象附加到数组。如果这就是我不知道工程师为什么不简单地使用'<<<<<<<<运营商。有什么区别?
谢谢!
答案 0 :(得分:3)
答案 1 :(得分:3)
<<
修改目标并非总是如此:它可能是重要的结果。请参阅API以了解用于行为的实际类型。
整数的位移不会产生副作用(除非分配/使用计算,否则计算将被丢弃):
a = 1
a << 2
a # => 1
a <<= 2
a # => 4
但是数组上的<<
会产生副作用(而<<=
只会执行无用的分配 1 - 影响操作的性质):
b = [1]
b << 2
b # => [1,2]
1 在极少数情况下,可能“聪明”,访问者使用obj.prop <<= val
进行副作用操作,因为它会调用 getter和setter - 而setter可能包含逻辑。但是,我在这里使用“聪明”这个词并不是“好”,原因是:)