Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ちょっとしたRubyの話
t0yohei
November 11, 2018
Technology
1
210
ちょっとしたRubyの話
t0yohei
November 11, 2018
Tweet
Share
More Decks by t0yohei
See All by t0yohei
プログラミング入門に失敗した話
t0yohei
0
110
【ITエンジニアが怪我で労災!?】 仕事中に足の小指が骨折したら起きること
t0yohei
0
150
Protocol Buffers で Web APIのスキーマ駆動開発がしたい
t0yohei
0
53
Ruby と JavaScript の違い( Function 編)
t0yohei
1
110
副業のノウハウ
t0yohei
0
93
自作キーボード入門してみた
t0yohei
0
71
Other Decks in Technology
See All in Technology
Power BIのモバイルと都 +1 / Tokyo
ishiayaya
0
130
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
mmochi23
1
260
エンジニアと気軽に繋がれるプラットフォーム「ハッカー飯」で行った セキュリティ・モニタリングに関する取り組みについて
nobuakikikuchi
0
350
srenext2022-skaru
mixi_engineers
0
350
SRE_チーム立ち上げから1年_気づいたら_SRE_っぽくない仕事まで貢献しちゃってる説
bitkey
PRO
0
1.8k
ニフティでSRE推進活動を始めて取り組んできたこと
niftycorp
2
170
組織でPower Virtual Agentsを導入するために知っておきたいこと
miyakemito
0
1.4k
LINEスタンプの実例紹介 小さく始める障害検知・対応・振り返りの 改善プラクティス
line_developers
PRO
3
1.2k
220510 プロセスマイニングを学ぶ PLAY与田さん
comucal
PRO
0
490
20220510_簡単にできるコスト異常検出(Cost Anomaly Detection) /jaws-ug-asa-cost-anomaly-detection-20220510
emiki
2
310
ISUCON で使えるツールを作った
shotakitazawa
0
350
Deeplearning from almost scratch
hn410
0
580
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
14
34k
Side Projects
sachag
449
37k
BBQ
matthewcrist
74
7.9k
Designing for Performance
lara
596
63k
Typedesign – Prime Four
hannesfritz
33
1.3k
Bash Introduction
62gerente
596
210k
Building a Scalable Design System with Sketch
lauravandoore
447
30k
Atom: Resistance is Futile
akmur
255
20k
Code Review Best Practice
trishagee
41
6.7k
Design by the Numbers
sachag
271
17k
Gamification - CAS2011
davidbonilla
75
3.9k
Creatively Recalculating Your Daily Design Routine
revolveconf
205
10k
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楽しいよ!