Submit Search
Upload
array.map(&:key)ってなんやねん
•
0 likes
•
357 views
Yoichi Toyota
Follow
rubyのコードでよく見られる、ブロックの代わりに&:keyみたいに渡されるやつの正体について説明します!
Read less
Read more
Technology
Report
Share
Report
Share
1 of 10
Download now
Download to read offline
Recommended
DTrace for biginners part(2)
DTrace for biginners part(2)
Shoji Haraguchi
HTMLの要素の選び方
HTMLの要素の選び方
TENTO_slide
深層学習入門 スライド
深層学習入門 スライド
swamp Sawa
深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)
ssuser441cb9
SGDによるDeepLearningの学習
SGDによるDeepLearningの学習
Masashi (Jangsa) Kawaguchi
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
nkazuki
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
Yuma Yoshimoto
Clustering _ishii_2014__ch10
Clustering _ishii_2014__ch10
Kota Mori
Recommended
DTrace for biginners part(2)
DTrace for biginners part(2)
Shoji Haraguchi
HTMLの要素の選び方
HTMLの要素の選び方
TENTO_slide
深層学習入門 スライド
深層学習入門 スライド
swamp Sawa
深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)
ssuser441cb9
SGDによるDeepLearningの学習
SGDによるDeepLearningの学習
Masashi (Jangsa) Kawaguchi
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
nkazuki
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
Yuma Yoshimoto
Clustering _ishii_2014__ch10
Clustering _ishii_2014__ch10
Kota Mori
怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01
nagachika t
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
Yuta Matsumura
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Yutaro Miyazaki
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
for JSDeferred Code Reading
for JSDeferred Code Reading
Kenichirou Oyama
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
C++0x 言語の未来を語る
C++0x 言語の未来を語る
Akira Takahashi
CodeIgniter入門
CodeIgniter入門
Sho A
超フランクにスクラムの大事なことの話をする
超フランクにスクラムの大事なことの話をする
Yoichi Toyota
ジャワカレーをおいしく作る最後の一押し
ジャワカレーをおいしく作る最後の一押し
Yoichi Toyota
ライブラリを作る思考回路
ライブラリを作る思考回路
Yoichi Toyota
DynamoDB設計のちょっとした技
DynamoDB設計のちょっとした技
Yoichi Toyota
はじめてのDynamoDBスキーマ設計
はじめてのDynamoDBスキーマ設計
Yoichi Toyota
オブジェクト指向についてあまり知られていないこと
オブジェクト指向についてあまり知られていないこと
Yoichi Toyota
Ruby is comming ractor編
Ruby is comming ractor編
Yoichi Toyota
はじめてのPull Request
はじめてのPull Request
Yoichi Toyota
Railsの開発環境作るぞ
Railsの開発環境作るぞ
Yoichi Toyota
jqで極めるシェル芸の話
jqで極めるシェル芸の話
Yoichi Toyota
足し算をつくろう
足し算をつくろう
Yoichi Toyota
React Hooksでカスタムフックをつくろう
React Hooksでカスタムフックをつくろう
Yoichi Toyota
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
サーバーレスアプリケーションの作り方
サーバーレスアプリケーションの作り方
Yoichi Toyota
More Related Content
Similar to array.map(&:key)ってなんやねん
怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01
nagachika t
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
Yuta Matsumura
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Yutaro Miyazaki
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
for JSDeferred Code Reading
for JSDeferred Code Reading
Kenichirou Oyama
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
C++0x 言語の未来を語る
C++0x 言語の未来を語る
Akira Takahashi
CodeIgniter入門
CodeIgniter入門
Sho A
Similar to array.map(&:key)ってなんやねん
(8)
怠惰なRubyistへの道 fukuoka rubykaigi01
怠惰なRubyistへの道 fukuoka rubykaigi01
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
for JSDeferred Code Reading
for JSDeferred Code Reading
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
C++0x 言語の未来を語る
C++0x 言語の未来を語る
CodeIgniter入門
CodeIgniter入門
More from Yoichi Toyota
超フランクにスクラムの大事なことの話をする
超フランクにスクラムの大事なことの話をする
Yoichi Toyota
ジャワカレーをおいしく作る最後の一押し
ジャワカレーをおいしく作る最後の一押し
Yoichi Toyota
ライブラリを作る思考回路
ライブラリを作る思考回路
Yoichi Toyota
DynamoDB設計のちょっとした技
DynamoDB設計のちょっとした技
Yoichi Toyota
はじめてのDynamoDBスキーマ設計
はじめてのDynamoDBスキーマ設計
Yoichi Toyota
オブジェクト指向についてあまり知られていないこと
オブジェクト指向についてあまり知られていないこと
Yoichi Toyota
Ruby is comming ractor編
Ruby is comming ractor編
Yoichi Toyota
はじめてのPull Request
はじめてのPull Request
Yoichi Toyota
Railsの開発環境作るぞ
Railsの開発環境作るぞ
Yoichi Toyota
jqで極めるシェル芸の話
jqで極めるシェル芸の話
Yoichi Toyota
足し算をつくろう
足し算をつくろう
Yoichi Toyota
React Hooksでカスタムフックをつくろう
React Hooksでカスタムフックをつくろう
Yoichi Toyota
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
サーバーレスアプリケーションの作り方
サーバーレスアプリケーションの作り方
Yoichi Toyota
SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方
Yoichi Toyota
AWS WAFでらくらくファイアーウォール生活
AWS WAFでらくらくファイアーウォール生活
Yoichi Toyota
Docker in production
Docker in production
Yoichi Toyota
How to fight against “full scratch disease”
How to fight against “full scratch disease”
Yoichi Toyota
Amazon lexを触ってみた
Amazon lexを触ってみた
Yoichi Toyota
Forkwell Meetup #3 Productivity Engineering スポンサーLT - 株式会社エクストーン
Forkwell Meetup #3 Productivity Engineering スポンサーLT - 株式会社エクストーン
Yoichi Toyota
More from Yoichi Toyota
(20)
超フランクにスクラムの大事なことの話をする
超フランクにスクラムの大事なことの話をする
ジャワカレーをおいしく作る最後の一押し
ジャワカレーをおいしく作る最後の一押し
ライブラリを作る思考回路
ライブラリを作る思考回路
DynamoDB設計のちょっとした技
DynamoDB設計のちょっとした技
はじめてのDynamoDBスキーマ設計
はじめてのDynamoDBスキーマ設計
オブジェクト指向についてあまり知られていないこと
オブジェクト指向についてあまり知られていないこと
Ruby is comming ractor編
Ruby is comming ractor編
はじめてのPull Request
はじめてのPull Request
Railsの開発環境作るぞ
Railsの開発環境作るぞ
jqで極めるシェル芸の話
jqで極めるシェル芸の話
足し算をつくろう
足し算をつくろう
React Hooksでカスタムフックをつくろう
React Hooksでカスタムフックをつくろう
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
サーバーレスアプリケーションの作り方
サーバーレスアプリケーションの作り方
SPA時代のOGPとの戦い方
SPA時代のOGPとの戦い方
AWS WAFでらくらくファイアーウォール生活
AWS WAFでらくらくファイアーウォール生活
Docker in production
Docker in production
How to fight against “full scratch disease”
How to fight against “full scratch disease”
Amazon lexを触ってみた
Amazon lexを触ってみた
Forkwell Meetup #3 Productivity Engineering スポンサーLT - 株式会社エクストーン
Forkwell Meetup #3 Productivity Engineering スポンサーLT - 株式会社エクストーン
Recently uploaded
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
Hiroshi Tomioka
Recently uploaded
(9)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
array.map(&:key)ってなんやねん
1.
array.map(&:key) ってなんやねん 株式会社エクストーン 豊田陽一
2.
今日のお題 ▰ rubyの配列処理でよく見るやつ &:idってなんやねんって話をします ids =
Data.all.map(&:id)
3.
メソッドのブロック渡し ▰ メソッドの引数に一連の手続きを渡す 方法 [1, 2,
3].each do |i| puts i end メソッド ブロック
4.
メソッドのブロック渡し(2) ▰ ブロックを変数に入れて渡せる ▰ procとして作成 put_proc
= proc { |i| puts i} [1, 2, 3].each(&proc)
5.
&って何? ▰ ブロックを引数として渡す方法 ▰ メソッド定義側ではブロックを受け取るかどうか を引数で定義していない ▰
そのまま渡すと引数の数が合わないエラー # 受け取ったブロックを実行するメソッド def test yield # ブロックを実行 end
6.
&って何?(2) ▰ ブロックとして渡したい変数に付与 # ブロックを直接渡す test
{ puts “test” } # ブロックを変数に入れて渡す test_proc = { puts “test” } # 変数の数が合わないエラー test(test_proc) # 正常に動く test(&test_proc)
7.
array.map(&:key)に迫る ▰ mapに:keyをブロックとして渡す ▰ シンボルをブロックとして渡す? ids
= Data.all.map do |data| data.id end ids = Data.all.map(&:id)
8.
to_proc ▰ &で渡されたシンボルはto_procで procに暗黙的に変換される # 同じ処理 upcase_proc
= proc do |st| st.upcase end upcase_proc = :upcase.to_proc # “HOGE” が返される upcase.call(“hoge”)
9.
つまりarray.map(&:key)は ▰ :key.to_procをブロック引数として、 Array#mapを呼び出している ids =
Data.all.map(&:id)
10.
ご視聴ありがとうございました! ▰ このスライドがよかったと思ったら ▰ Twitterのフォロー
(@rs_wisteria) ▰ 高評価 ▰ コメント お待ちしております!!!!
Download now