Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

378 views

Published on

「Ruby / Ruby on Rails ビギナーズ勉強会 第17回」での発表内容です。
Rubyを理解する第一歩として、ブロックについてまとめています。

■イベントページはこちらです。
https://coedo-rails.doorkeeper.jp/events/52638

=============================================================

「CoEdo.rb」が運営する「Ruby / Ruby on Railsビギナーズ勉強会」Ruby、Ruby on Railsなどで開発したい、触りたいための初心者勉強会&もくもく会です。

開催の連絡は以下の方法で受け取ることができます。

## DoorKeeperグループ
イベント申し込みを受け付けている、DoorKeeper でのグループです。
https://coedo-rails.doorkeeper.jp/

## Facebookグループ
イベント告知や技術情報をお互いにシェアしています。
https://www.facebook.com/groups/rorbeginners/

## Twitterハッシュタグ
ハッシュタグは、 #rubybg です。
Twitterにもイベント、勉強会の情報を流しています。

[★Ustreamでは、勉強会を生中継しています。](http://www.ustream.tv/channel/ruby-ruby-on-rails-%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E5%80%B6%E6%A5%BB
D%E9%83%A8)

[★Youtubeでは、ショートセッションを収録しています。](https://www.youtube.com/playlist?list=PL2ojdc4KhtHniIyIUx3AdO621ydzz5zpP)

Published in: Engineering
  • Be the first to comment

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

  1. 1. Ruby / Ruby on Railsビギナーズ倶楽部 Rubyを楽しくする第⼀歩! ブロックを理解する! 2016.11.23
  2. 2. Self-Intoroduction 徳島県出⾝です (o´∀`o) ⼀緒に勉強しましょう( ´ ▽ ` )ノ 勉強会やってます! アウトプットを主軸においた、勉強会を運営しています:) Click エンジニア(Rails/Swift/AWS/Linux)
  3. 3. 全国書店販売中! ~Swiftではじめるプログラミングの第⼀歩~ これからつくるiPhoneアプリ開発⼊⾨ [ Swift3 &Xcode8対応 ] Swiftビギナーズ倶楽部から⽣まれた! https://swiftbg.github.io/swiftbook/ 書籍公式サイト 応⽤編 アプリリリース編 サンプルアプリ Tips公開
  4. 4. Engineer@Life is Tech !
  5. 5. 1)ブロック(block)の基本 Today's Agenda 3)便利なEnumerable モジュール 2)ブロックの利⽤応⽤編
  6. 6. ブロック😤 Ruby初学者のつまずきポイント ブロックを制覇できると、 Rubyの扉はひらける・・・おそらく:)
  7. 7. 1)ブロック(block)の基本 ブロックとは・・・ [1, 2, 3].each do |i| puts i ** 2 end こんな処理
  8. 8. 1)ブロック(block)の基本 メソッド呼び出し実⾏時に、 引数と併せて処理の 塊を渡すことができる。
  9. 9. 1)ブロック(block)の基本 メソッド呼び出し実⾏時に、 引数と併せて処理の塊を渡すことができる。 [1, 2, 3].each do |i| puts i ** 2 end メソッド呼び出し ブロックパラメータ ブロック変数
  10. 10. 1)ブロック(block)の基本 書き⽅は、2つあって、 こんな書き⽅も出来る。 [1, 2, 3].each {|i| puts i ** 2} 実⾏結果 => 1, 4, 9
  11. 11. 1)ブロック(block)の基本 処理は、どちらも同じで、 1, 4, 9 が出⼒されます。 [1, 2, 3].each {|i| puts i ** 2}
  12. 12. 2)ブロックを利⽤した便利メソッド eachは、ブロックで 処理を実⾏するだけ。 処理結果を戻り値として 受け取りたい場合は、 を利⽤します。map
  13. 13. 1)ブロック(block)の基本 処理は、どちらも同じで、 1, 4, 9 が出⼒されます。 para = [1, 2, 3].map {|i| i ** 2} 実⾏結果 => [1, 4, 9]
  14. 14. 2)ブロックの利⽤応⽤編 ブロック付きメソッドから、 メソッドチェーンで ブロックで処理を⾏なう。 (1..10).select {|i| i.even?}.map {|e| e ** 2} 実⾏結果 => [4, 16, 36, 64, 100]
  15. 15. 2)ブロックの利⽤応⽤編 ["a", "b", "c"].each_with_index do |value, key| puts "#{key}: #{value}" end 実⾏結果 => 0: a 1: b 2: c ブロック変数に、配列のkeyとvalueを渡せます。
  16. 16. 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]}
  17. 17. 2)ブロックの利⽤応⽤編 [1, 2, 3].inject { |result, item| result + item } 配列の合計を計算できます。 このような繰り返し処理を イテレーターともいいます。 他にもたくさんのメソッドがあります。
  18. 18. るびまサーチ 他にもたくさんの メソッドがあります。 「るびまサーチ」で 検索して探すのも楽しいです。 https://docs.ruby-lang.org/ja/search/
  19. 19. 3)便利なEnumerable モジュール 繰り返しを⾏なうクラスのための Mix-inです。 Mix-inとは、モジュールが提供しているメソッドを 利⽤できる仕組みです。 メソッドは全てeach を⽤いて定義されているので、 インクルードするクラスに、eachが定義 されていると繰り返し処理が便利になります。
  20. 20. 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
  21. 21. ブロックが理解できたら、 次のステップで挑戦したいこと yield Proc lambda
  22. 22. ココら辺が理解できると、 次のステップに進めるので、 次回まとめます   😀
  23. 23. Let's study together! Thank you :)

×