[解決済み] Rubyのmapとcollectの違い?
質問
ググってみたところ、様々な意見や矛盾した意見がありました。
map
と
collect
Ruby/Railsで配列の上に?
は、その ドキュメント は、特に示唆していないようですが、もしかしたら、方法や性能に違いがあるのでしょうか?
解決方法は?
違いはありません。
map
は、C言語では
rb_ary_collect
と
enum_collect
(例)
map
は配列でも他の列挙型でも変わりませんが
map
と
collect
).
なぜ両方なのか
map
と
collect
はRubyに存在するのか?
は、その
map
関数は、言語によって多くの命名規則があります。
ウィキペディアに概要が掲載されています
:
Map関数は関数型プログラミング言語に由来するが、今日では多くの手続き型言語、オブジェクト指向言語、マルチパラダイム言語でもサポートされている(あるいは定義されている場合がある)。C++の標準テンプレートライブラリでは、この関数は
transform
C#(3.0)のLINQライブラリでは、拡張メソッドとしてSelect
. Map は Perl、Python、Ruby などの高級言語でも頻繁に使用される操作で、その操作名はmap
は、これら3つの言語すべてにおいて Acollect
map のエイリアスは Ruby でも提供されています(Smalltalk から)。 [強調]。Common Lispには、mapに似た関数群があり、ここで説明した動作に対応するものはmapcar
(-carはCAR操作によるアクセスを示す)。
RubyはSmalltalkの世界から来たプログラマがよりくつろげるようなエイリアスを提供します。
配列とenumで実装が異なるのはなぜですか?
列挙型は一般化された反復構造であり、Ruby では次の要素が何であるかを予測することはできません(無限列挙型を定義することが可能です。
プライム
を使用します(例)。したがって、連続する各要素を取得するために関数を呼び出す必要があります(通常、これは
each
メソッド)。
配列は最も一般的なコレクションなので、そのパフォーマンスを最適化するのは妥当なことです。Ruby は配列がどのように動くかについてよく知っているので、わざわざ
each
を使用することができますが、単純な
ポインタ操作
の方が圧倒的に高速です。
のような多くのArrayメソッドにも同様の最適化が存在します。
zip
または
count
.
関連
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] JavaScriptで2つの配列の差を取得する方法は?
-
[解決済み] JavaScriptの配列宣言で「Array()」と「[]」はどう違うのですか?
-
[解決済み] array_map、array_walk、array_filterの違いについて
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
-
[解決済み】Rubyで配列を反復処理するための「正しい」方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyで新しい文字列を作成せずに文字列をトリミングする標準的な方法は何ですか?
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのメソッド'to_sym'は何をするのですか?
-
[解決済み] Rubyの除算はなぜ10進数ではなく整数を返すのですか?
-
[解決済み] Rubyがブロックの中でパイプ文字を使うことについて、誰か説明してください。
-
[解決済み] git, Heroku: pre-receive フックの減少
-
[解決済み] Rubyのコロン演算子とは何ですか?
-
[解決済み] ルビースリープやディレイは1秒以下?
-
[解決済み] Rubyで中央値を計算する
-
[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法