ruby(rails)をさわる機会が出来たので,こちらのページを参考に調べてみました.rubylearning.com summary 3までです.それ以後はまだ読めていません.
インデント
タブはスペース2個分
メソッド呼び出し
次のようなメソッドの呼び出しが,許されている.
foobar
foobar()
foobar(a, b, c)
foobar a, b, c
すべてがオブジェクト
integerやstringなどすべてオブジェクトである.しかし,putsやgetsなどのいくつかのメソッドはどこでも使用出来る.それは,これらのメソッドは,rubyカーネルモジュールに含まれているからである.rubyカーネルモジュールは,全てのクラスから参照できるメソッドを定義しているモジュールであり,objectクラスはこのモジュールをインクルードしている.
コメント
#から始まる一行,または=beginと=endで挟んだ行をコメントとする.
真偽
予約語であるfalseやnilのみが偽であり,zeroやnull string,null characterやその他のものはすべて真である.
インクリメント,デクリメント
++や–で表させるインクリメントや,デクリメントは利用出来ない.+=や-=は利用できる.
糖衣構文(シンタックスシュガー)
演算子に見えるものは,すべてメソッド呼び出しである.
コマンド実行
バックチックで囲むと,そのコマンドが実行される.その後,putsメソッドによりコマンドの結果(この場合,ファイルの一覧)が出力される.
puts `ls`
もう一つの方法は,カーネルメソッドのsystemを使うことである.返値は,コマンドが見つかり,適切に実行されるとtrue,コマンドが0以外で終了すればfalse,コマンドが実行できなければnilである.ただし,system内のコマンドの出力先は,rubyのプログラムの出力先と同じである.
system("tar xzf test.tgz")
変数,定数
$から始まるとグローバル変数,小文字またはアンダースコアで始まるとローカル変数である.トップレベル自体が,ローカルスコープを持つ.全てのモジュール,クラス,メソッドの定義がローカルスコープを持つ.@から始まるとインスタンス変数であり,@@から始まるとクラス変数である.大文字から始まると定数である.
コンソール入力
コンソール入力には,putsとchompが便利.STDOUTはプログラムの実際の出力機構である.flushでバッファに溜まっているのを吐き出す.この使い方が推奨されている.getsで一行分のデータを読み込み,chompにより改行コードを除く.
puts "What's your name?"
STDOUT.flush
name = gets.chomp
puts "Hi"+ name + "!!"
Bang(!)メソッド
sort/sort!,upcase/upcase! ,chomp/chomp!,reverse/reverse!などで!がついているものは同じオブジェクトに対して操作を行い同じオブジェクトを返す.!が付いていないものは新しくオブジェクトを作ってそれを返す.
文字列の比較
文字列の比較には==,String.eql?,String.equal?の三種類がある.==とString.eql?は中身の文字列が同じかどうかの比較を行う.String.equal?はオブジェクトが同じかどうかの比較をおこなう.
%wの利用
単語の配列を作るとき,%wというショートカットがある.
names1 = [ 'ann', 'richard', 'william', 'susan', 'pat' ]
puts names1[0] # ann
puts names1[3] # susan
# this is the same:
names2 = %w{ ann richard william susan pat }
puts names2[0] # ann
puts names2[3] # susan
while
よくあるwhile文です.
# Loops
var = 0
while var < 10
puts var.to_s
var += 1
end
三項演算子
これもよくある三項演算子です.
age = 23
person = (13...19).include?(age) ? "teenager" : "not a teenager"
puts person # "not a teenager"
case文
year = 2000
leap = case
when year % 400 == 0 then true
when year % 100 == 0 then false
else year % 4 == 0
end
puts leap
# output is: true
age = 19
puts case age
when 0..2 then "baby"
when 3..19 then "child"
else "adult"
end
# output is: child
nilについて
rubyでは,nilは実際のオブジェクトであり,他のオブジェクトのようにメソッドを呼び出したり,追加したり出来る.また,falseとnilは違うオブジェクトである.
# NIL is synonym for nil
puts NIL.class # NilClass
puts nil.class # NilClass
puts nil.object_id # 4
puts NIL.object_id # 4
# FALSE is synonym for false
puts FALSE.class # FalseClass
puts false.class # FalseClass
puts false.object_id # 0
puts FALSE.object_id # 0
参考: rubylearning.com - “http://rubylearning.com/satishtalim/tutorial.html”