我有一些代码,我正在调试使用这个操作符,我不知道它为什么被使用。这个操作符在ruby中做了些什么? << =
它似乎将追加到一个数组的对象。如果那是我唯一不知道为什么工程师不会简单地使用'< <'操作员。有什么不同?
谢谢!
我有一些代码,我正在调试使用这个操作符,我不知道它为什么被使用。这个操作符在ruby中做了些什么? << =
它似乎将追加到一个数组的对象。如果那是我唯一不知道为什么工程师不会简单地使用'< <'操作员。有什么不同?
谢谢!
它并不总是<<
修改目标的情况:它可能是很重要的结果。有关行为的实际类型,请参阅API。
的整数的比特移位不具有副作用(计算被丢弃,除非它被分配/使用):阵列上
a = 1
a << 2
a # => 1
a <<= 2
a # => 4
但是<<
确实有副作用效果(和<<=
只想执行无用分配隐藏操作的副作用性质):
b = [1]
b << 2
b # => [1,2]
在极少数情况下,它可能是“聪明”与存取使用obj.prop <<= val
的影响的操作,因为它会调用都 getter和二传手 - 和二传手可能包含的逻辑。但是,我在这里使用“聪明”而不是“好”这个词是因为某种原因:)
一个如何使用它的例子可能有助于给出上下文。 – Shmiddty
问工程师?它稍微昂贵一些,并给出了相同的结果(对于阵列,对于移位它可能是有意义的,因为移位不会修改原始值) – UncleGene