最近、私はあなたがrubyのreduceメソッドでパラメータを入れた順番が結果に影響を与えていることに注目しました。Rubyでのreduceメソッドの別の作業メカニズム
a = ["1", "2", "3"]
a.reduce {|val, con| val + con}
a = ["123"]
しかし
a.reduce {|val, con| con + val}
a = ["321"]
私はそれだけであなたに順序を与えるどのように重要だと思う| |ヴァル、コンこれは、conが後者の位置にある場合、すべてのステップの結果が常にconに格納されることを意味します。そして、これらの2つは同じ結果をもたらすはずです。しかし明らかにここにはない。
誰かがヒントを提供できますか?ありがとう。これらの2つのメソッドがRubyでどのように実装されているかについての説明は、大いに役立ちます。
は、https://ruby-doc.org/core-2.1.0/Enumerable.html#method-i-reduceでのString#+ ' – Ilya
ドキュメント'読ん行動やソースコードの説明を含めてください。 –
'String#+'は非可換であり、結果が変わることは本当に驚くことではありません。同じ理由から、「Hello」+「World」は「World」+「Hello」と同じではありません。 –