Rubyを学ぶ 1日目
Ruby の基礎を理解
Ruby はオブジェクト指向言語
文字列や配列はもちろん、数値や nil を含めて、すべてがオブジェクト。
その証拠に数値や nil、true や false に対してもメソッドを呼び出すことが出来ます。
以下、確認したコード
irb(main):001:0> '1'.to_s => "1" irb(main):002:0> 1.to_s => "1" irb(main):003:0> nil.to_s => "" irb(main):004:0> true.to_s => "true" irb(main):005:0> false.to_s => "false" irb(main):006:0> /\d+/.to_s => "(?-mix:\\d+)"
メソッド呼び出し
Ruby では次のような形式でオブジェクトのメソッドを呼び出すことができます。
オブジェクト.メソッド(引数 1, 引数 2, 引数 3)
引数の括弧は省略することも出来ます。
オブジェクト.メソッド 引数 1, 引数 2, 引数 3
引数がなければ、次のようにメソッドの名前だけを書くことも出来ます。
オブジェクト.メソッド
リテラル
ソースコードに直接埋め込む事ができる値のことをリテラルといいます。
# 数値 123 # 文字列 "Hello" # 配列 [1, 2, 3] # ハッシュ {'japan' => 'yen', 'us' => 'dollar', 'india' => 'rupee'} # 正規表現 /\d+-\d+/
変数(ローカル変数)の宣言と代入
変数は次のようにして宣言と代入を同時に行います。
変数名 = 式や値
# 変数を宣言する目的で変数名だけ書くと、エラーになる x #=> NameError x = nil # 変数名はスネークケースで書く special_price = 200
文字列
シングルクオートとダブルクオート
'これは文字列です。' "これは文字列です。"
上のコード例ではどちらも文字列としての違いはありませんが、シングルクオートとダブルクオートでは挙動が異なる点があります。
文字列中に改行文字(\n)を埋め込みたい場合は、ダブルクオートで囲む必要があります。
# ダブルクオートで囲むと\nが改行文字として機能する puts "こんにちは\nさようなら" #=> こんにちは # さようなら # シングルクオートで囲むと\nはただの文字列になる puts 'こんにちは\nさようなら' #=> こんにちは\nさようなら
ダブルクオートを使うと式展開が使えます。式展開を使う場合は#{ }の中に変数や式を書きます。
name = 'Alice' puts "Hello, #{name}!" #=> Hello, Alice! i = 10 puts "#{i}は16進数にすると#{i.to_s(16)}です" #=> 10は16進数にするとaです