Enviar búsqueda
Cargar
Ruby初級者向けレッスン 56回 ─── ブロック
•
0 recomendaciones
•
612 vistas
higaki
Seguir
Ruby の特徴のひとつであるブロックについてお話します。 ブロックを使ったメソッドの利用から、ブロックを使うメソッドの作り方までを紹介します。
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 32
Descargar ahora
Descargar para leer sin conexión
Recomendados
Ruby初級者向けレッスン 50回 ─── ブロック
Ruby初級者向けレッスン 50回 ─── ブロック
higaki
実はこんなこともできる Fireworksの裏技
実はこんなこともできる Fireworksの裏技
Akira Maruyama
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
三七男 山本
Zshって最強らしい
Zshって最強らしい
ngi group.
Windowsでも使えるシェル
Windowsでも使えるシェル
Tetsuya Hasegawa
Interactive Music II SuperCollider入門 2 - 関数とUGen
Interactive Music II SuperCollider入門 2 - 関数とUGen
Atsushi Tadokoro
松江Ruby会議05 dxruby
松江Ruby会議05 dxruby
mirichi_
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
Hiramatsu Ryosuke
Recomendados
Ruby初級者向けレッスン 50回 ─── ブロック
Ruby初級者向けレッスン 50回 ─── ブロック
higaki
実はこんなこともできる Fireworksの裏技
実はこんなこともできる Fireworksの裏技
Akira Maruyama
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
minami.rb最初で最後のLT大会「Wakayama.rbの紹介」
三七男 山本
Zshって最強らしい
Zshって最強らしい
ngi group.
Windowsでも使えるシェル
Windowsでも使えるシェル
Tetsuya Hasegawa
Interactive Music II SuperCollider入門 2 - 関数とUGen
Interactive Music II SuperCollider入門 2 - 関数とUGen
Atsushi Tadokoro
松江Ruby会議05 dxruby
松江Ruby会議05 dxruby
mirichi_
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
Hiramatsu Ryosuke
松江Ruby会議05 dxruby
松江Ruby会議05 dxruby
mirichi_
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!
notargs
Vim の話
Vim の話
cohama
怠惰なRubyistへの道
怠惰なRubyistへの道
nagachika t
GTC2011 Japan
GTC2011 Japan
Takuro Iizuka
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
文樹 高橋
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
higaki
Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン 55回 ─── 例外
higaki
Ruby初級者向けレッスン 54回 ─── クラス
Ruby初級者向けレッスン 54回 ─── クラス
higaki
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
higaki
初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列
higaki
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
higaki
PHPer のための Ruby 教室
PHPer のための Ruby 教室
higaki
Ruby 初級者向けレッスン 49回───クラス
Ruby 初級者向けレッスン 49回───クラス
higaki
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と Hash
higaki
Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列
higaki
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::Unit
higaki
ジュンク堂書店の方から来ました
ジュンク堂書店の方から来ました
higaki
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外
higaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Más contenido relacionado
La actualidad más candente
松江Ruby会議05 dxruby
松江Ruby会議05 dxruby
mirichi_
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!
notargs
Vim の話
Vim の話
cohama
怠惰なRubyistへの道
怠惰なRubyistへの道
nagachika t
GTC2011 Japan
GTC2011 Japan
Takuro Iizuka
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
文樹 高橋
La actualidad más candente
(6)
松江Ruby会議05 dxruby
松江Ruby会議05 dxruby
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!
Vim の話
Vim の話
怠惰なRubyistへの道
怠惰なRubyistへの道
GTC2011 Japan
GTC2011 Japan
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
WPD-Fes #3 2015年のサバイバル学習術 Web開発技術の税引後利益 を最大化しよう!
Más de higaki
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
higaki
Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン 55回 ─── 例外
higaki
Ruby初級者向けレッスン 54回 ─── クラス
Ruby初級者向けレッスン 54回 ─── クラス
higaki
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
higaki
初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列
higaki
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
higaki
PHPer のための Ruby 教室
PHPer のための Ruby 教室
higaki
Ruby 初級者向けレッスン 49回───クラス
Ruby 初級者向けレッスン 49回───クラス
higaki
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と Hash
higaki
Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列
higaki
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::Unit
higaki
ジュンク堂書店の方から来ました
ジュンク堂書店の方から来ました
higaki
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外
higaki
Más de higaki
(13)
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン 54回 ─── クラス
Ruby初級者向けレッスン 54回 ─── クラス
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 52回 ─── 文字列
初級者向けレッスン 51回 ─── 例外
初級者向けレッスン 51回 ─── 例外
PHPer のための Ruby 教室
PHPer のための Ruby 教室
Ruby 初級者向けレッスン 49回───クラス
Ruby 初級者向けレッスン 49回───クラス
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 47回 ─── 文字列
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::Unit
ジュンク堂書店の方から来ました
ジュンク堂書店の方から来ました
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外
Último
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Último
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ruby初級者向けレッスン 56回 ─── ブロック
1.
2016年1月9日 Ruby初級者向けレッスン 56回 — ブロック
— ひがき @ Ruby関西
2.
お品書き • ブロックとは? – 繰り返し –
Enumerable • メソッドにブロックを渡す • ブロックで値を受け取る • メソッドでブロックを受け取る • ブロックに値を渡す
3.
繰り返し a = [’a’,
’b’, ’c’] a.each do |i| puts i end # >> a # >> b # >> c
4.
繰り返し a = [’a’,
’b’, ’c’] a.each{|i| puts i} # >> a # >> b # >> c
5.
Enumerable • 繰り返しを行なうクラスのためのモジュール • クラスには
each メソッドが必要 Array.ancestors # => [Array, Enumerable, Object, Kernel, Hash.ancestors # => [Hash, Enumerable, Object, Kernel,
6.
BasicObject Object Mix-in Kernel Mix-in Enumerable map select inject Array Hash each each
7.
便利な例 a = [0,
1, 2, 3] # => [0, 1, 2, 3] a.map{|i| i * i} # => [0, 1, 4, 9] a.select{|i| i.even?} # => [0, 2] a.inject{|s, i| s + i} # => 6 a.find{|i| i.odd?} # => 1 a.all?{|i| i.even?} # => false a.any?{|i| i.even?} # => true
8.
array.map{|i| i *
i} アプリケーション ブロック オブジェクト -生成 § ¦ ¤ ¥{|i| i * i} -map 呼出
9.
ブロックを渡す • メソッドには、ブロックをひとつ渡せる。 • ブロックをどう使うかは、メソッド次第。 open(’hello.txt’)
# = #File:hello.txt open(’hello.txt’){|f| f.read} # = こんにちはn
10.
ファイル入出力の例 begin f = open(’hello.txt’) f.read ensure f.close
unless f.nil? end
11.
ブロックのない open アプリケーション オブジェクト -open -read -close ×
12.
ブロック付き open open(’hello.txt’){|f| f.read} アプリケーション
ブロック オブジェクト § ¦ ¤ ¥{|f| f.read} -生成 -open 呼出 close ×
13.
値を受け取る • ブロックは、値を受け取れる。 • 何を幾つ受け取れるかは、メソッド次第。
14.
値は受け取らなくてもいい 2.times{|i| puts i} #
0 # 1 2.times{puts ’こんにちは’} # こんにちは # こんにちは
15.
Hash の例 people =
{matz: 50, dhh: 36} # = {:matz=50, :dhh=36} people.each do |person| p person end # [:matz, 50] # [:dhh, 36]
16.
Hash の例 (2) people
= {matz: 50, dhh: 36} # = {:matz=50, :dhh=36} people.each do |name, age| puts #{name}(#{age}) end # matz(50) # dhh(36)
17.
each_cons の例 midosuji =
[梅田, 淀屋橋, 本町, 心斎橋, なんば] midosuji.each_cons(2){|path| p path} # [梅田, 淀屋橋] # [淀屋橋, 本町] # [本町, 心斎橋] # [心斎橋, なんば]
18.
each_cons の例 (2) midosuji.each_cons(2)
do |from, to| p #{from} - #{to} end # 梅田 - 淀屋橋 # 淀屋橋 - 本町 # 本町 - 心斎橋 # 心斎橋 - なんば
19.
each_cons の例 (3) a
= [*0..3] # = [0, 1, 2, 3] a.each_cons(3){|i| p i} # [0, 1, 2] # [1, 2, 3] a.each_cons(3){|i, j| p [i, j]} # [0, 1] # [1, 2]
20.
ブロックを受け取るメソッド • こんな感じで呼びたい x3{puts ’Ruby3’} #
Ruby3 # Ruby3 # Ruby3
21.
ブロックを受け取る def x3 def
x3(block) yield block.call yield block.call yield block.call end end x3{puts ’Ruby3’} # Ruby3 # Ruby3 # Ruby3
22.
値を渡す def x3 def
x3(block) yield 0 block.call 0 yield 1 block.call 1 yield 2 block.call 2 end end x3{|i| puts Ruby#{i}} # Ruby0 # Ruby1 # Ruby2
23.
ふたつの値を渡す def x3 yield ’Ruby’,
0 # 文字列 と 数値 yield ’Ruby’, 1 yield [’Ruby’, 2] # ひとつの配列 end
24.
ふたつの値を渡す (2) x3{|i, j|
p #{i} #{j}} # Ruby 0 # Ruby 1 # Ruby 2
25.
ふたつの値を渡す (3) x3{|i| p
i} # ひとつの変数で受けとる # Ruby # Ruby # [Ruby, 2]
26.
ブロックは Proc block =
Proc.new do |i, j| puts #{i}#{j} end x3(block) # Ruby0 # Ruby1 # Ruby2
27.
演習問題 0 今日のレッスンで分からなかったこと、疑問に 思ったことをグループで話し合ってみよう。
28.
演習問題 1 0 から
9 までの数値をもつ配列 a がある。 • 各要素を順番に表示しよう。 • 各要素を文字列にした配列を作ろう。 • 各要素を 2倍した値を持つ配列を作ろう。 • 全要素の合計値を計算しよう。 a = (0..9).to_a # = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
29.
演習問題 2 0 から
9 までの数値をもつ配列 a がある。 奇数の要素だけを持つ配列を作ろう。 ただし odd? メソッドは使用禁止。 (これは Enumerable を使ったパズルです) a = [*0..9] # = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a. Enumerable メソッド { odd? 禁止 }
30.
演習問題 3 Enumerable#map を自作してみよう。 module
Enumerable def my_map …… end end ただし Enumerable#map と Enumerable#map! は使用禁止。
31.
自己紹介 • 名前 (ニックネーム) •
普段の仕事・研究内容・代表作 • Ruby歴・コンピュータ歴 • 勉強会に来た目的 • などなど
32.
参考 • 公式サイト https://www.ruby-lang.org/ • るりま http://docs.ruby-lang.org/ja/ •
解答例 https://github.com/higaki/ learn_ruby_kansai_70
Descargar ahora