#Ruby 練習ノート
条件分岐 if <条件> then(省略可) (else) end
繰り返し
while <繰り返し条件> end
数値.times { }
オブジェクト.each {|変数| }
関数 def メソッド名 ..処理.. end
配列 arrayname = [ 要素1, 要素2, 要素3,...]
ハッシュ hashname = {"key1"=> val1, "key2"=> val2,...}
each メソッド
arrayname = {|n| 処理...}
hashname={|key,value| 処理...}
引数 ARGV配列。添え字0はコマンドラインの最初の引数(コマンド名ではない)
ファイル入出力
オープン file = open(filename)
全体読み込み file.read
一行読み込み file.gets
正規表現
生成 //でくくる または pattern = Regexp.new(パターン文字列)
マッチング if pattern =~ string変数 then .. end
オブジェクトとクラス
|オブジェクト|クラス名|
|数値|Numeric|
|文字列|String|
|配列|Array|
|ハッシュ|Hash|
|正規表現| Regexp|
|ファイル|File|
変数と定数
ローカル変数 先頭が英文字小文字または_で始まるもの
グローバル変数 先頭が$で始まるもの
定数 先頭が英文字大文字で始まるもの
インスタンス変数 先頭が@で始まるもの
クラス変数 先頭が@@で始まるもの
オブジェクトの同一性と値の同一性
オブジェクトのid val.object_id(または__id__)
オブジェクトの同一性 val1.equal?(val2)
値の同一性 val1.eql?(val2) # Numericクラスでは==と結果が異なる(1.0と1の比較等)
型変換
Numericに変換 ARGV[0].to_i