4

このコードに出くわしました。

def setup(&block)
  @setups << block
end

この行は何をしますか?

@setups << block

「<<」が何をするかに興味があります。

説明書には二交代制のオペレーターと書いてありますが、彼は一緒にいるのですか?

4

3 に答える 3

8

配列<<の場合は append メソッドです。配列の最後にアイテムを追加します。

したがって、特定のケースでは、ブロックを使用して呼び出すsetupと、ブロックProcから作成されたオブジェクトが に格納され@setupsます。

注: sbeamがコメントで指摘しているように、<<はメソッドであるため、呼び出されるオブジェクトのタイプに応じてさまざまなことを行うことができます。たとえば、文字列の連結、整数のビット シフトなどです。

ary << obj → ary」ドキュメントを参照してください。

于 2012-09-20T11:15:10.250 に答える
1

配列の最後に要素をプッシュして配列を構築しています。

手入力はこちら。

于 2012-09-20T11:14:53.280 に答える
1

<<Ruby では、通常、 appendを意味するために使用されます。つまり、リストに追加したり、文字列に連結したりします。

Ruby がこれを使用する理由は不明ですが、ライブラリがオブジェクトの変更と変更されたオブジェクトを返すことを大きく区別しているためである可能性があります (オブジェクトを変更するメソッドには!接尾辞が付いている傾向があります)。このように、<<は に対応するオブジェクトの変更+です。

于 2012-09-20T11:16:04.517 に答える