プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

私がおすすめするプログラミング教材のまとめ【書籍と動画】

プログラミング言語 スクリプト言語 コンパイル言語 アプリ開発 サーバー、インフラ、セキュリティなど 機械学習系 ゲーム開発 データベース 子供向け デザイン その他 おまけ まとめ この記事では、様々な書籍を紹介しました。 是非、自分に合 ...

続きを見る

【Ruby入門】inject(reduce)メソッドの使い方

更新日:

記事の内容


この記事では、Rubyのinjectの使い方を紹介します。
injectはわかりづらいので、injectを使わない書き方も合わせて説明します。
最後に実行時間も計測するので、どちらのコードが効率的なのかもわかります。
また、reduceはinjectの別名です。

injectとは何か?

injectはブロックを使用して繰り返し処理を行います。
この説明だけではわかりづらいと思うので、実際にコードを見ていきましょう。

配列の値の合計を出す

injectを使って、配列の数字の合計を出してみます。
内部で何が起きているかは、eachで置き換えたコードを見ると、わかりやすいはずです。
injectの基本的な書式は以下の通りです。

inject(初期値) { |初期値, 配列から渡されてくる値| }

配列内にあるHashの、特定のkeyの合計を出す

特定のkeyの値だけを合計します。

配列の要素数をカウントして、出現数を出します

injectを使って、配列の要素数をカウントしてみます。

Hashにある配列をフィルタリング

Hashにある配列をフィルタリングしてみます。
find_allとmapを使う方法と、reduceを使う方法の2つを考えてみます。

2つの方法では、実行時間も変わってきます。
reduceを使う方が、実行時間は短くすみます。
ちなみに、このコードを実行する時は、どちらか一方のコードをコメントアウトして動かして下さい。
片方のコードが、もう一方に影響を与えることを防ぐためです。

まとめ

この記事では、injectの使い方を紹介しました。
用途に合わせて、上手くinjectメソッドを使って下さい。

Good luck for your engineer life!

Rubyをより詳しく勉強したい人は、この記事を読んで下さい

Rubyの学習でおすすめの本と動画【2020年最新】

初心者向け【入門編】 スラスラ読める Rubyふりがなプログラミング ふりがなプログラミングシリーズのRuby版です。 文句なしに、やさしい内容なので、これからプログラミングを始めてみようという人は、この本から始めると良いかもしれません。 ...

続きを見る


Ruby on Railsをより詳しく勉強したい人は、この記事を読んで下さい

Ruby on Railsの学習でおすすめの本と動画【2020年最新】

初心者向け Ruby on Rails 5.0 初級① Ruby on Railsは、基本的には初心者向けではありません。 ただし、これらの本は、比較的、簡単に書かれています。 プログラミング経験が浅くてRailsを勉強したい人は、この本か ...

続きを見る


Javaをより詳しく勉強したい人は、この記事を読んで下さい

Javaの学習でおすすめの本と動画【2020年最新】

初心者向け スッキリわかるJava入門 第3版 発売から8年であっという間に総計40万部到達した大人気シリーズの原点です。 Javaの入門書の定番で、わかりやすいことで評判です。 個人的には、「初心者を飽きさせない工夫」が素晴らしいと思いま ...

続きを見る


Go言語をより詳しく勉強したい人は、この記事を読んで下さい

Go言語の学習でおすすめの本と動画【2020年最新】

初心者向け 入門Goプログラミング 海外で評判がよい入門書の翻訳版です。 テンポよく学んでいけるのはいいのですが、翻訳が完全とは言えません。 プログラミング経験が浅い人にはいいと思います。 改訂2版 基礎からわかる Go言語 Go言語のバー ...

続きを見る


Gitをより詳しく勉強したい人は、この記事を読んで下さい

Gitの学習でおすすめの本と動画【2020年最新】

漫画?でわかりやすく学ぶ入門書の定番 わかばちゃんと学ぶGit使い方入門 Gitの入門書の定番と言っても差し支えありません。 絵や図で解説している本なので、わかりやすく頭に入ってきます。 初心者向け Gitが、おもしろいほどわかる基本の使い ...

続きを見る


ErlangとElixirをより詳しく勉強したい人は、この記事を読んで下さい

ErlangとElixirの学習でおすすめの本と動画【2020年最新】

Erlang すごいErlangゆかいに学ぼう Erlangの入門書です。 言語の特徴が具体的なコード例と一緒に解説されています。 Erlangらしい関数型言語の良さがわかる内容です。 プログラミングErlang Erlangの強みである並 ...

続きを見る

関連コンテンツ

-Ruby, プログラミング

Copyright© プログラミング道場 , 2020 All Rights Reserved Powered by AFFINGER4.