Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ちょっとしたRubyの話

23e39d2858d95e6bfb68a63b61fee13f?s=47 t0yohei
November 11, 2018

 ちょっとしたRubyの話

23e39d2858d95e6bfb68a63b61fee13f?s=128

t0yohei

November 11, 2018
Tweet

More Decks by t0yohei

Other Decks in Technology

Transcript

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

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

  3. Rubyとは • 1993年にMatzが開発 • OSS言語 • Ruby on Railsとは切っても切れない縁 •

    Rubyの実装はC言語でされている • そのため、MatzはRubyエンジニアではなくCエンジニア
  4. 私がRuby好きな理由 • Rubyと同い年で謎の親近感(1993年生まれ) • プログラミングを好きにしてくれた言語 • スラスラ書ける • 開発者コミュニティーが心地よい

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

  6. Rubyの面白い所

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

  8. Class クラス

  9. Method クラス

  10. 動的型付けの特性を生かしたダックタイピング • 引数に渡した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というメソッドを定義 引数は一つ(型はなんでもいい)
  11. 動的型付けの特性を生かしたダックタイピング 変数名: string、型: String 変数名: array、型: Array メソッド名: one_count、引数: 可変長引数

    変数名: object、型: countメソッドを持っている何か 実行されて結果が帰ってくる
  12. 好きなメソッド (Array#inject) 配列の合計値の計算 injectを使わない場合

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

  14. 小話 Q. 次の配列arrayAから配列arrayBの要素を取り除くには?? arrayA = [1, 2, 3] arrayB =

    [1, 2] 変数名: arrayA、型: Array 変数名: arrayB、型: Array
  15. 小話 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
  16. Ruby楽しいよ!