116

私はそれらがここで一緒に文書化されているのを見ました。それらは同じものですか?Rubyに非常に多くのエイリアス(配列のマップ/収集など)があるのはなぜですか?どうもありがとう。

4

3 に答える 3

166

foldはい。他の多くのプログラミング言語や数学でも呼ばれています。さまざまなバックグラウンドを持つプログラマーが直感的に理解できるように、Rubyは多くのエイリアスを使用しています。#lengthで使用したい場合はArray、できます。使いたいならそれでもいいです#sizeよ!

于 2012-12-11T03:44:43.647 に答える
7

のドキュメントの最新バージョンでは、Enumerable#reduce明示的に指定してください。

およびメソッドinjectreduceエイリアスです。どちらにもパフォーマンス上の利点はありません。

于 2017-09-24T08:28:36.803 に答える
1

それらは同じものですか?

はい、エイリアスは最終的にまったく同じコードを実行します。

Rubyに非常に多くのエイリアス(配列のマップ/収集など)があるのはなぜですか?

それは言語のアプローチに要約されます

言語が異なればアプローチも異なります。ここで視覚化してみました。

ここに画像の説明を入力してください

Rubyは、開発者の生産性を優先してそれを行います。基本的に、エイリアスを使用することで、さまざまなプログラミング言語人間の言語のバックグラウンドを持つプログラマーに、より直感的にコードを記述できるようになります。

ただし、メソッドをまたはmidnight()として表現できるなど、セマンティックの可能性が異なるものもあるため、コードを明確にするのにも役立ちます。それらは、コンテキストに応じてより明確になる可能性があります。start_of_dayend_of_day

ちなみに、一部のプログラマーは、さまざまなセマンティック状況を区別するためにも使用injectしています。reduce

于 2021-02-15T19:33:59.943 に答える