Ruby / Ruby on Railsビギナーズ倶楽部
Rubyを楽しくする第⼀歩!
ブロックを理解する!
2016.11.23
Self-Intoroduction
徳島県出⾝です
(o´∀`o) ⼀緒に勉強しましょう( ´ ▽ ` )ノ
勉強会やってます!
アウトプットを主軸においた、勉強会を運営しています:)
Click
エンジニア(Rails/Swift/AWS/Linux)
全国書店販売中!
~Swiftではじめるプログラミングの第⼀歩~
これからつくるiPhoneアプリ開発⼊⾨
[ Swift3 &Xcode8対応 ]
Swiftビギナーズ倶楽部から⽣まれた!
https://swiftbg.github.io/swiftbook/
書籍公式サイト
応⽤編
アプリリリース編
サンプルアプリ
Tips公開
Engineer@Life is Tech !
1)ブロック(block)の基本
Today's Agenda
3)便利なEnumerable モジュール
2)ブロックの利⽤応⽤編
ブロック😤
Ruby初学者のつまずきポイント
ブロックを制覇できると、
Rubyの扉はひらける・・・おそらく:)
1)ブロック(block)の基本
ブロックとは・・・
[1, 2, 3].each do |i|
puts i ** 2
end こんな処理
1)ブロック(block)の基本
メソッド呼び出し実⾏時に、
引数と併せて処理の
塊を渡すことができる。
1)ブロック(block)の基本
メソッド呼び出し実⾏時に、
引数と併せて処理の塊を渡すことができる。
[1, 2, 3].each do |i|
puts i ** 2
end メソッド呼び出し
ブロックパラメータ
ブロック変数
1)ブロック(block)の基本
書き⽅は、2つあって、
こんな書き⽅も出来る。
[1, 2, 3].each {|i| puts i ** 2}
実⾏結果 => 1, 4, 9
1)ブロック(block)の基本
処理は、どちらも同じで、
1, 4, 9 が出⼒されます。
[1, 2, 3].each {|i| puts i ** 2}
2)ブロックを利⽤した便利メソッド
eachは、ブロックで
処理を実⾏するだけ。
処理結果を戻り値として
受け取りたい場合は、
を利⽤します。map
1)ブロック(block)の基本
処理は、どちらも同じで、
1, 4, 9 が出⼒されます。
para = [1, 2, 3].map {|i| i ** 2}
実⾏結果 => [1, 4, 9]
2)ブロックの利⽤応⽤編
ブロック付きメソッドから、
メソッドチェーンで
ブロックで処理を⾏なう。
(1..10).select {|i| i.even?}.map {|e| e ** 2}
実⾏結果 => [4, 16, 36, 64, 100]
2)ブロックの利⽤応⽤編
["a", "b", "c"].each_with_index do |value, key|
puts "#{key}: #{value}"
end
実⾏結果 =>
0: a
1: b
2: c
ブロック変数に、配列のkeyとvalueを渡せます。
3)ブロックを利⽤した便利メソッド
["box", "apple", "car"].sort_by { |v| v }
配列をソートできます。
配列の最⼤値を求められます。
[1, 2, 3].inject { |max, item| item > max ? item : max }
配列をグループ分けできます。
[1, 2, 3].group_by { |i| i % 2 }
実⾏結果 => {1=>[1, 3], 0=>[2]}
2)ブロックの利⽤応⽤編
[1, 2, 3].inject { |result, item| result + item }
配列の合計を計算できます。
このような繰り返し処理を
イテレーターともいいます。
他にもたくさんのメソッドがあります。
るびまサーチ
他にもたくさんの
メソッドがあります。
「るびまサーチ」で
検索して探すのも楽しいです。
https://docs.ruby-lang.org/ja/search/
3)便利なEnumerable モジュール
繰り返しを⾏なうクラスのための Mix-inです。
Mix-inとは、モジュールが提供しているメソッドを
利⽤できる仕組みです。
メソッドは全てeach を⽤いて定義されているので、
インクルードするクラスに、eachが定義
されていると繰り返し処理が便利になります。
3)便利なEnumerable モジュール
all? any? chunk chunk_while collect map collect_concat
flat_map count cycle detect find drop drop_while
each_cons each_entry each_slice each_with_index
each_with_object entries to_a find_all select find_index first
grep grep_v group_by include? member? inject reduce lazy
max max_by min min_by minmax minmax_by none? one?
partition reject reverse_each slice_after slice_before
slice_when sort sort_by take take_while to_h zip
ブロックが理解できたら、
次のステップで挑戦したいこと
yield
Proc
lambda
ココら辺が理解できると、
次のステップに進めるので、
次回まとめます   😀
Let's study together!
Thank you :)

More Related Content

PDF
Railsチュートリアル(second)を終えて
PPTX
Walking front end
PPTX
Rails+Markdownでなにかつくる
PPTX
WindowsユーザのためのRails環境構築
PPTX
Railsのフロントエンド開発を考える
PPTX
Rails5クイックスタート
PDF
2017年3月13日勉強会発表資料
PPTX
エンジニアが Webを学ぶために やっててよかったこと
Railsチュートリアル(second)を終えて
Walking front end
Rails+Markdownでなにかつくる
WindowsユーザのためのRails環境構築
Railsのフロントエンド開発を考える
Rails5クイックスタート
2017年3月13日勉強会発表資料
エンジニアが Webを学ぶために やっててよかったこと

What's hot (20)

PDF
Ruby on Railsではじめるrspecテスト
PDF
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
PDF
TypeScript 入門してみる
PPTX
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
PDF
Refrection of kawasaki.rb
PDF
Ember コミュニティとわたし
PDF
Ruby and I at 神奈川Ruby会議01
PDF
Railsから学ぶRESTfulなuri設計
PDF
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
PDF
nomlab_okayamaruby_slide
PDF
TypeScript 独習会
PDF
PHPでWebSocketを実装してみてわかったこと
PDF
nomlab_okayamaruby_subslide
PDF
jQuery 対応ライブラリと TypeScript
PDF
Source kittenについて
PPTX
なぜか技術書典5で 3サークルの運営を同時にやった話
PDF
TypeScriptは明日から使うべき
PPTX
無名関数のすすめ
PDF
これからはじめる SwiftPlayground入門
PDF
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
Ruby on Railsではじめるrspecテスト
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
TypeScript 入門してみる
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Refrection of kawasaki.rb
Ember コミュニティとわたし
Ruby and I at 神奈川Ruby会議01
Railsから学ぶRESTfulなuri設計
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
nomlab_okayamaruby_slide
TypeScript 独習会
PHPでWebSocketを実装してみてわかったこと
nomlab_okayamaruby_subslide
jQuery 対応ライブラリと TypeScript
Source kittenについて
なぜか技術書典5で 3サークルの運営を同時にやった話
TypeScriptは明日から使うべき
無名関数のすすめ
これからはじめる SwiftPlayground入門
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
Ad

Viewers also liked (20)

PDF
湿気ったごはんにカビが生えた! 日本酒・酒粕の文化史
PDF
第一回テクニカルアーティストラウンドテーブル・セッション
PPTX
放射線検出器を作る人のための基礎知識(超簡単版)
PDF
セミナー 君の名は
PPTX
20160612 第34回cv勉強会@関東 コンピュテーショナルフォトグラフィ
PDF
HTML5で作るiPhoneアプリケーション
PPTX
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
PDF
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
PDF
デブサミ2009: iPhone開発者座談会
PDF
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
PDF
(エンジニアから見た)
最近のスマートウォッチ事情
PDF
Html5で作るiPhoneアプリケーション2010
KEY
iPhoneアプリ開発を楽に楽しくするサイトまとめ
PPTX
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
PDF
Phone Appli「PA Sync」 説明資料
PDF
HTML5@iPhoneゲーム開発
PDF
Office for iPad Office for iPhone 企業利用における問題点のまとめ
PDF
コンピューター支援言語学習
PPTX
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
PDF
非It系総務の社内kintone促進 kintone Café japan
湿気ったごはんにカビが生えた! 日本酒・酒粕の文化史
第一回テクニカルアーティストラウンドテーブル・セッション
放射線検出器を作る人のための基礎知識(超簡単版)
セミナー 君の名は
20160612 第34回cv勉強会@関東 コンピュテーショナルフォトグラフィ
HTML5で作るiPhoneアプリケーション
第1回 始めてみよう Web 動画 〜 基礎編 まずは iPhone から
<Yahoo!プロモーション広告>「iPhone 6」発売後はどうなる? 関連キーワード検索傾向
デブサミ2009: iPhone開発者座談会
「iPhone 6s/6s Plus」発売前後の検索実績からみる、インターネットユーザー動向
(エンジニアから見た)
最近のスマートウォッチ事情
Html5で作るiPhoneアプリケーション2010
iPhoneアプリ開発を楽に楽しくするサイトまとめ
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
Phone Appli「PA Sync」 説明資料
HTML5@iPhoneゲーム開発
Office for iPad Office for iPhone 企業利用における問題点のまとめ
コンピューター支援言語学習
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
非It系総務の社内kintone促進 kintone Café japan
Ad

Similar to Rubyを楽しくする第一歩!ブロックを理解する! (20)

PDF
Ruby初級者向けレッスン 50回 ─── ブロック
PDF
Ruby初級者向けレッスン 56回 ─── ブロック
PDF
Ruby初級者向けレッスン KOF2015 出張版
PDF
Rubyist生活に欠かせないブロック構文の話
PDF
Ruby&Active Support for expert 3
PPT
Start!! Ruby
PPT
第1部「一時間で覚えるruby」
PPTX
プログラミング入門 Ruby超入門編
PPTX
Ruby講座第二回
ODP
とっとるびー(2回目)発表資料
PDF
railsはじめの一歩
PDF
What's Cooking In Ruby 2.7
KEY
Rails基礎講座 part.1
PDF
現実世界のJRuby(ショートバージョン)
PDF
Ruby on Rails 入門
PDF
現実世界のJRuby
PDF
Ruby でつくる型付き Ruby
PPTX
そんな装備で大丈夫か?
PDF
Rails初心者レッスン lesson4 2edition
PDF
Next-L Enju 開発WS #03 Ruby on Railsの使い方
Ruby初級者向けレッスン 50回 ─── ブロック
Ruby初級者向けレッスン 56回 ─── ブロック
Ruby初級者向けレッスン KOF2015 出張版
Rubyist生活に欠かせないブロック構文の話
Ruby&Active Support for expert 3
Start!! Ruby
第1部「一時間で覚えるruby」
プログラミング入門 Ruby超入門編
Ruby講座第二回
とっとるびー(2回目)発表資料
railsはじめの一歩
What's Cooking In Ruby 2.7
Rails基礎講座 part.1
現実世界のJRuby(ショートバージョン)
Ruby on Rails 入門
現実世界のJRuby
Ruby でつくる型付き Ruby
そんな装備で大丈夫か?
Rails初心者レッスン lesson4 2edition
Next-L Enju 開発WS #03 Ruby on Railsの使い方

More from Kanako Kobayashi (18)

PDF
React Nativeの話のその前に… サービスの作り方の話
PDF
Movable Type Data API連携!店舗情報を地図に表示させよう!
PDF
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
PDF
Xcodeのデバッグを極めよう!
PDF
Swiftオープンソース化ってなんですか?
PDF
Railsで非同期処理を実装しよう!!
PDF
Swiftで、Webサーバにデータを送信・登録しよう!
PDF
楽しいSwift!クラスと構造体を知る:)
PDF
WordPressの構造を理解しよう
PDF
Swiftで外部ライブラリを使ってみよう
PDF
oEmbedで、色んなコンテンツをWordPressに組み込もう!
PDF
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
PDF
シェイクを検知して学ぼう、モーションイベント!
PDF
Svgアニメーションを実装してみよう 20150207
PDF
20141220_iOS8マルチデバイス対応(Size Classes編)
PDF
Swiftビギナーズ倶楽部 vol.2
PDF
Swiftビギナーズ勉強会 第一回@Co-Edo
PDF
Gulp De wordpress in WordBench
React Nativeの話のその前に… サービスの作り方の話
Movable Type Data API連携!店舗情報を地図に表示させよう!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
Xcodeのデバッグを極めよう!
Swiftオープンソース化ってなんですか?
Railsで非同期処理を実装しよう!!
Swiftで、Webサーバにデータを送信・登録しよう!
楽しいSwift!クラスと構造体を知る:)
WordPressの構造を理解しよう
Swiftで外部ライブラリを使ってみよう
oEmbedで、色んなコンテンツをWordPressに組み込もう!
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
シェイクを検知して学ぼう、モーションイベント!
Svgアニメーションを実装してみよう 20150207
20141220_iOS8マルチデバイス対応(Size Classes編)
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ勉強会 第一回@Co-Edo
Gulp De wordpress in WordBench

Rubyを楽しくする第一歩!ブロックを理解する!

Editor's Notes

  • #3: 徳島県出身 ライフイズテックという、中高生にプログラミングを教えるキャンプやイベントを運営している会社で、Railsエンジニアをしています。 CoEdo.rb以外にも、Swiftビギナーズ倶楽部や、WordPressもくもく倶楽部という勉強会を運営しています。
  • #4: お知らせなのですが、iPhoneアプリに関する書籍を出版しました! Swift3.0/Xcode8に対しています。 全国書店と、Kindle版を購入いただけます。 こちらは、Swiftビギナーズ倶楽部の運営陣が主体となって執筆した本です。 そちらの藤さんと小林も執筆メンバーです。 で、ビギナーズ倶楽部の中で、ハンズオンセミナーを開催したり、イベントを開催していく中で得られた知見を凝縮した書籍になります。
  • #5: 普段は、ライフイズテックという中高生にプログラミングを教えるイベントやスクールを運営している会社で、エンジニアをしています。 わたしが中高生に直接プログラミングを教えることは少なくて、ライフイズテックの基幹システムや、様々なサービスや教材を開発しています。
  • #9: こちらはRails 5.0.0.beta1環境での解説を 行ってくださっています。 rc1ではいくつか作成の流れに変更がありますので、 開発のコードはそのまま使わせていただいて Rails 5.0.0.rc1 での変更点を押さえながら、 構築手順を解説しています。
  • #10: こちらはRails 5.0.0.beta1環境での解説を 行ってくださっています。 rc1ではいくつか作成の流れに変更がありますので、 開発のコードはそのまま使わせていただいて Rails 5.0.0.rc1 での変更点を押さえながら、 構築手順を解説しています。
  • #11: こちらはRails 5.0.0.beta1環境での解説を 行ってくださっています。 rc1ではいくつか作成の流れに変更がありますので、 開発のコードはそのまま使わせていただいて Rails 5.0.0.rc1 での変更点を押さえながら、 構築手順を解説しています。
  • #12: こちらはRails 5.0.0.beta1環境での解説を 行ってくださっています。 rc1ではいくつか作成の流れに変更がありますので、 開発のコードはそのまま使わせていただいて Rails 5.0.0.rc1 での変更点を押さえながら、 構築手順を解説しています。
  • #15: {}ブロック内の式が trueになる要素だけ を抽出します。 selectの反対は、rejectというメソッドがあります。 selectの反対で、{}ブロック内の式が falseになる要素だけ を抽出します。 他にも、{}ブロック内の式がtrueになった 最初の要素 を検索して返すメソッドや、
  • #16: 繰り返しごとにブロック引数valueには各要素が入り、 keyには0、1、2、...と添字が入ります。