この演算子を使用するデバッグ中のコードがいくつかありますが、なぜ使用されるのかわかりません。
オブジェクトを配列に追加しているようです。それがすべてだった場合、エンジニアが単純に「<<」演算子を使用しなかった理由がわかりません。違いはなんですか?
ありがとう!
この演算子を使用するデバッグ中のコードがいくつかありますが、なぜ使用されるのかわかりません。
オブジェクトを配列に追加しているようです。それがすべてだった場合、エンジニアが単純に「<<」演算子を使用しなかった理由がわかりません。違いはなんですか?
ありがとう!
ターゲットを変更するとは限りません<<
。重要なのは結果かもしれません。動作に関して使用される実際のタイプについては、API を参照してください。
整数のビット シフトには副作用はありません (割り当て/使用されない限り、計算は破棄されます)。
a = 1
a << 2
a # => 1
a <<= 2
a # => 4
しかし<<
、配列には副作用があります(そして、操作の副作用の性質を隠す無駄な割り当て1<<=
を実行するだけです):
b = [1]
b << 2
b # => [1,2]
1まれに、ゲッターとセッターの両方を呼び出し、セッターにロジックが含まれている可能性があるため、副作用のある操作にアクセサーを使用するのが「賢い」場合があります。ただし、ここでは理由から「良い」ではなく「賢い」という言葉を使用しています:)obj.prop <<= val
http://www.tutorialspoint.com/ruby/ruby_operators.htm
ビット単位の左シフト操作と代入が 1 つのように見えます。
x <<= 2
と同じです
x = x << 2