麻布十番で働くデータ分析者のブログ

グロースハック、プログラミング、データ分析の色々を発信します

プロを目指す人のためのRuby入門 1日目

こんばんは!

最近しっかりとRubyレベルから学び直したいと思い下記の書籍を購入しました。 

  著者の伊藤さんは、前々からqiitaでもTwitterでも知っていました。 解説が超わかりやすいなあと思い、本を買っても間違いないだろうと思い購入しました。

個人的にはRubyの本は「たのしいRuby」から2冊目です。 しかし、最近Rubyの書き方を忘れたりうまく読めなかったりしたので、本書を購入したに至ります。

今日から1章ずつ読んでいき、気になったところや、ここ忘れてたーと思うところをピックアップしていきたいと思います。 今日は2章の「Rubyの基礎を理解する」です。

文字列の比較

文字列が同じかどうか調べる場合は==を、異なる値かどうかを調べる場合は!=を使う。

‘ruby’ == ‘ruby’ #=> true

ちなみにrubyで使うのは、’ ‘でも” "でもどちらでも大丈夫

&&や||の戻り値と評価を終了するタイミング

例えば次の例を見てみる

1 && 2 && 3 #=> 3
1 && nil && 3 #=> nil

nil | | false #=> false
false | | nil #=> nil

Rubyは式全体が真または偽であることが決定するまで左辺から順に式を評価します。 ちなみに | | は「または」の意

似たような演算子にand、or、notがありますが、&& | | のほうが優先度が高くなります。

デフォルト値付きのメソッド

def greeting(country)
     if country == ‘japan’
        ‘こんにちは’
    else
        ‘hello’
    end
end

# 引数が少ない
greeting
#=> ArgumentError: wrong number of argument(given 0, expected 1)

# 引数が多い
greeting (‘us’,’japan’)
#=> ArgumentError: wrong number of argument(given 2, expected 1)

ただしRubyでは、メソッドの引数に先にデフォルトを入れておくことができる。

def メソッド名(引数1 = デフォルト値1, 引数2 = デフォルト値2)
    #処理
end


def greeting (country = ‘japan’)
    if country == ‘japan’
        ‘こんにちは’
    else
        ‘hello’
    end
end

greeting #=> “こんにちは”
greeting (‘us’) #=> “hello”

特に最後のデフォルト値付きのメソッドは、オブジェクト指向であるRubyで大事な概念でしょう。 ここで紹介したのはほんの一部なので、気になる方はぜひ書籍を手にとってみてください!