Slide 1

Slide 1 text

ちょっとしたRubyの話 2018/11/11 @t0yohei

Slide 2

Slide 2 text

Rubyにそこまで詳しくない人 or Ruby初めてまもない人向けです

Slide 3

Slide 3 text

Rubyとは ● 1993年にMatzが開発 ● OSS言語 ● Ruby on Railsとは切っても切れない縁 ● Rubyの実装はC言語でされている ● そのため、MatzはRubyエンジニアではなくCエンジニア

Slide 4

Slide 4 text

私がRuby好きな理由 ● Rubyと同い年で謎の親近感(1993年生まれ) ● プログラミングを好きにしてくれた言語 ● スラスラ書ける ● 開発者コミュニティーが心地よい

Slide 5

Slide 5 text

Rubyの言語的特徴 ● オブジェクト指向言語 ● 動的型付けスクリプト言語 ● etc...

Slide 6

Slide 6 text

Rubyの面白い所

Slide 7

Slide 7 text

(ほぼ)全てがオブジェクト ● Class → Classクラスのオブジェクト ● method → Objectクラスのオブジェクト

Slide 8

Slide 8 text

Class クラス

Slide 9

Slide 9 text

Method クラス

Slide 10

Slide 10 text

動的型付けの特性を生かしたダックタイピング ● 引数に渡した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というメソッドを定義 引数は一つ(型はなんでもいい)

Slide 11

Slide 11 text

動的型付けの特性を生かしたダックタイピング 変数名: string、型: String 変数名: array、型: Array メソッド名: one_count、引数: 可変長引数 変数名: object、型: countメソッドを持っている何か 実行されて結果が帰ってくる

Slide 12

Slide 12 text

好きなメソッド (Array#inject) 配列の合計値の計算 injectを使わない場合

Slide 13

Slide 13 text

好きなメソッド (Array#inject) 配列の合計値の計算 injectを使った場合

Slide 14

Slide 14 text

小話 Q. 次の配列arrayAから配列arrayBの要素を取り除くには?? arrayA = [1, 2, 3] arrayB = [1, 2] 変数名: arrayA、型: Array 変数名: arrayB、型: Array

Slide 15

Slide 15 text

小話 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

Slide 16

Slide 16 text

Ruby楽しいよ!