Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ちょっとしたRubyの話
Search
t0yohei
November 11, 2018
Technology
1
510
ちょっとしたRubyの話
t0yohei
November 11, 2018
Tweet
Share
More Decks by t0yohei
See All by t0yohei
Vue の Input における State は親で持つべきか子で持つべきか
t0yohei
0
64
Vue.js を使って Grid System を実装した話
t0yohei
2
7.5k
負債が溜まったレガシーフロントエンド画面を Vue.js でリプレイスした話
t0yohei
0
2.1k
プログラミング入門に失敗した話
t0yohei
0
200
【ITエンジニアが怪我で労災!?】 仕事中に足の小指が骨折したら起きること
t0yohei
0
440
Protocol Buffers で Web APIのスキーマ駆動開発がしたい
t0yohei
0
210
Ruby と JavaScript の違い( Function 編)
t0yohei
1
340
副業のノウハウ
t0yohei
0
200
自作キーボード入門してみた
t0yohei
0
160
Other Decks in Technology
See All in Technology
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
6
4.6k
AI時代、1年目エンジニアの悩み
jin4
1
130
いよいよ仕事を奪われそうな波が来たぜ
kazzpapa3
3
300
Amazon Bedrock AgentCore 認証・認可入門
hironobuiga
1
450
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
0
800
Introduction to Bill One Development Engineer
sansan33
PRO
0
350
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
170
BPaaSオペレーション・kubell社内 n8n活用による効率化検証事例紹介
kentarofujii
0
320
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
1
250
20260129_CB_Kansai
takuyay0ne
1
230
ドキュメントからはじめる未来のソフトウェア
pkshadeck
4
2.1k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
69
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
We Have a Design System, Now What?
morganepeng
54
8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
sira's awesome portfolio website redesign presentation
elsirapls
0
140
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
The Cult of Friendly URLs
andyhume
79
6.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
400
Transcript
ちょっとしたRubyの話 2018/11/11 @t0yohei
Rubyにそこまで詳しくない人 or Ruby初めてまもない人向けです
Rubyとは • 1993年にMatzが開発 • OSS言語 • Ruby on Railsとは切っても切れない縁 •
Rubyの実装はC言語でされている • そのため、MatzはRubyエンジニアではなくCエンジニア
私がRuby好きな理由 • Rubyと同い年で謎の親近感(1993年生まれ) • プログラミングを好きにしてくれた言語 • スラスラ書ける • 開発者コミュニティーが心地よい
Rubyの言語的特徴 • オブジェクト指向言語 • 動的型付けスクリプト言語 • etc...
Rubyの面白い所
(ほぼ)全てがオブジェクト • Class → Classクラスのオブジェクト • method → Objectクラスのオブジェクト
Class クラス
Method クラス
動的型付けの特性を生かしたダックタイピング • 引数に渡したobjectが、そのメソッドを持っていたら実行できる • ex) def count_object(object) p object.count end
object = [1, 2, 3] count_object(object) #結果 => 3 object = “123” count_object(object) #結果 => 3 object = { 1 => “1”, 2 => 2 , 3 => “3” } count_object(object) #結果 => 3 String Array Hash count_objectというメソッドを定義 引数は一つ(型はなんでもいい)
動的型付けの特性を生かしたダックタイピング 変数名: string、型: String 変数名: array、型: Array メソッド名: one_count、引数: 可変長引数
変数名: object、型: countメソッドを持っている何か 実行されて結果が帰ってくる
好きなメソッド (Array#inject) 配列の合計値の計算 injectを使わない場合
好きなメソッド (Array#inject) 配列の合計値の計算 injectを使った場合
小話 Q. 次の配列arrayAから配列arrayBの要素を取り除くには?? arrayA = [1, 2, 3] arrayB =
[1, 2] 変数名: arrayA、型: Array 変数名: arrayB、型: Array
小話 Q. 次の配列arrayAから配列arrayBの要素を取り除くには?? arrayA = [1, 2, 3] arrayB =
[1, 2] → 配列arrayAから配列arrayBから、型: Array、要素: 1 の配列を作りたい ex) arrayC = [1] https://twitter.com/bendhalpern/status/1060965181759635456 変数名: arrayA、型: Array 変数名: arrayB、型: Array
Ruby楽しいよ!