Suche senden
Hochladen
Ruby初級者向けレッスン 50回 ─── ブロック
•
2 gefällt mir
•
1,515 views
higaki
Folgen
P.26 「ブロックは Proc」は間違いでした。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 32
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Ruby初級者向けレッスン 56回 ─── ブロック
Ruby初級者向けレッスン 56回 ─── ブロック
higaki
初めてのGemの読み方
初めてのGemの読み方
Takao Baba
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
Empfohlen
Ruby初級者向けレッスン 56回 ─── ブロック
Ruby初級者向けレッスン 56回 ─── ブロック
higaki
初めてのGemの読み方
初めてのGemの読み方
Takao Baba
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
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Weitere ähnliche Inhalte
Mehr von 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
Mehr von higaki
(7)
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回 ─── 例外
Kürzlich hochgeladen
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Kürzlich hochgeladen
(12)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Ruby初級者向けレッスン 50回 ─── ブロック
1.
2014年7月26日 Ruby初級者向けレッスン 50回 — ブロック
— ひがき @ Ruby関西
2.
お品書き • ブロックとは? – 繰り返し –
Enumerable • メソッドにブロックを渡す • ブロックで値を受け取る • メソッドでブロックを受け取る • ブロックに値を渡す
3.
繰り返し a = [0,
1, 2] a.each do |i| puts i end # >> 0 # >> 1 # >> 2
4.
繰り返し a = [0,
1, 2] a.each{|i| puts i} # >> 0 # >> 1 # >> 2
5.
Enumerable • 繰り返しを行なうクラスのためのモジュール • クラスには
each メソッドが必要 Array.ancestors # => [Array, Enumerable, Object, Kerne 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: 49, dhh: 34} # = {:matz=49, :dhh=34} people.each{|person| p person} # [:matz, 49] # [:dhh, 34]
16.
Hash の例 (2) people
= {matz: 49, dhh: 34} people.each do |name, age| puts #{name}(#{age}) end # matz(49) # dhh(34)
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.
ブロックを受け取るメソッド • こんな感じで呼びたい monta{puts ’block!’} #
block! # block! # 大切なことなので
21.
ブロックを受け取る def monta yield yield puts ’大切なことなので’ end
22.
ブロックを受け取る (2) def monta(block) block.call block.call puts
’大切なことなので’ end
23.
値を渡す def monta yield ’大切なことなので’ yield
’大切なことなので’ end monta{|i| puts i} # 大切なことなので # 大切なことなので
24.
値を渡す (2) def monta(block) block.call
’大切な’, ’ことなので’ block.call [’大切な’, ’ことなので’] end monta{|i| p i} # 大切な # [大切な, ことなので]
25.
値を渡す (3) def monta(block) block.call
’大切な’, ’ことなので’ block.call [’大切な’, ’ことなので’] end monta{|i, j| p #{i}, #{j}} # 大切な, ことなので # 大切な, ことなので
26.
ブロックは Proc block =
Proc.new do |i, j| puts #{i}#{j} end monta(block) # 大切なことなので # 大切なことなので
27.
演習問題 0 今日のレッスンで分からなかったこと、疑問に 思ったことをグループで話し合ってみよう。
28.
演習問題 1 0 から
9 までの数値をもつ配列 a がある。 • 各要素を順番に表示しよう。 • 各要素を 2倍した値を持つ配列を作ろう。 • 全要素の合計値を計算しよう。 a = (0..9).to_a a # = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
29.
演習問題 2 0 から
9 までの数値をもつ配列 a がある。 奇数の要素だけを持つ配列を作ろう。 ただし 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_62
Jetzt herunterladen