私はそれらがここで一緒に文書化されているのを見ました。それらは同じものですか?Rubyに非常に多くのエイリアス(配列のマップ/収集など)があるのはなぜですか?どうもありがとう。
3 に答える
fold
はい。他の多くのプログラミング言語や数学でも呼ばれています。さまざまなバックグラウンドを持つプログラマーが直感的に理解できるように、Rubyは多くのエイリアスを使用しています。#length
で使用したい場合はArray
、できます。使いたいならそれでもいいです#size
よ!
のドキュメントの最新バージョンでは、Enumerable#reduce
明示的に指定してください。
およびメソッド
inject
はreduce
エイリアスです。どちらにもパフォーマンス上の利点はありません。
それらは同じものですか?
はい、エイリアスは最終的にまったく同じコードを実行します。
Rubyに非常に多くのエイリアス(配列のマップ/収集など)があるのはなぜですか?
それは言語のアプローチに要約されます
言語が異なればアプローチも異なります。ここで視覚化してみました。
Rubyは、開発者の生産性を優先してそれを行います。基本的に、エイリアスを使用することで、さまざまなプログラミング言語と人間の言語のバックグラウンドを持つプログラマーに、より直感的にコードを記述できるようになります。
ただし、メソッドをまたはmidnight()
として表現できるなど、セマンティックの可能性が異なるものもあるため、コードを明確にするのにも役立ちます。それらは、コンテキストに応じてより明確になる可能性があります。start_of_day
end_of_day
ちなみに、一部のプログラマーは、さまざまなセマンティック状況を区別するためにも使用inject
しています。reduce