私は.tap
コンテキスト内の配列を変更した場合、修正されたバージョンが返されます。Rubyでpipe equalがtapで機能しないのはなぜですか?
states = [:a, :b].tap do |sts|
sts << :c
end
puts states # [:a, :b, :c]
しかし、私は|=
でそれを変更した場合、それは同じオブジェクトを返します。
states = [:a, :b].tap do |sts|
[[:a, :c], [:b, :d]].each do |type|
sts |= type
end
puts sts.inspect # [:a, :b, :c, :d]
end
puts states.inspect # [:a, :b]
は私を指してもらえ正しい方向は?
は、なぜ私はどう思いますか、「ノイズ」:
は、第二のケースで、あなただけの新しい配列を作成しますか?それが何かを実証するのを助ける方法、私は正直に不思議ですか? [これをフォーマットする方法](https://pastebin.com/raw/xU8hcx7J)などです。クリーナー__and__ copy-pastable。 –
大丈夫ですので、フォーマットについて話しています、私はあなたの点を受け入れる –
ええ、私は明確でない場合は申し訳ありません。明らかに、私は_code_について話していませんでした。ちょうどノイズ:) –