Rubyの使用例
Rubyのような言語を習得する1番の方法は、対話形式で操作してみることです。多くの動的言語には、REPL(Read-Execute-Print Loop)と呼ばれる対話型のプロンプトが用意されています。RubyのREPLプログラムはirb(「interactive Ruby」の略)という名前です。
irbプログラムを実行すると、次のようなirbプロンプトが表示されます。
C:\Users\Brad> irb irb(main):001:0>
irbプロンプトにコマンドを入力すると、Rubyインタープリタによってコマンドが評価され、結果が画面に表示されます。irbのようなREPLは、ステートメントを1つずつ実行しながら言語を習得するのに最適です。
手始めにRubyで2つの数値を足してみましょう。irbプロンプトで「5 + 2」と入力し、Enterキーを押します。
irb(main):001:0> 5 + 2 => 7
irb(main):001:0>の部分は、irbによって表示されるプロンプトです。「5 + 2」と入力してEnterキーを押すと、=> 7という形で結果が表示されます。=>は、評価の結果が表示されていることを示すヒントです。
式がまだ終わっていないとRubyが判断した場合は、式を続けて入力できます。例えば、「5 + 2 +」と入力してEnterキーを押すと、まだ入力する式が残っていると判断され、次の行で入力を続けることができます。
irb(main):002:0> 5 + 2 + irb(main):003:0* 13 => 20
2行目のプロンプトは「>」ではなく「*」で終わっており、まだ前のステートメントが続いていることを示しています。
基本のデータ型(1)
数値を処理できなければ、プログラミング言語にほとんど価値はありません。単純な演算処理はRubyの得意技です。
irb(main):004:0> 3 + 4 => 7 irb(main):005:0> 3 * 4 => 12 irb(main):006:0> 3 - 4 => -1 irb(main):007:0> 3 / 4 => 0 irb(main):008:0> 3.0 / 4.0 => 0.75 irb(main):009:0> 0xF => 15 irb(main):010:0> 0x3 * 0xA => 30
このように、Rubyでは整数型と浮動小数点数型がサポートされており、16進整数の共通形式を使うこともできます。ただし、0x3 * 0xAの結果は10進数で(0x1Eではなく30と)表示されています。
.NETの場合と同様に、数値は実際にはオブジェクトなので、次のように数値のメソッドを呼び出すことができます。
irb(main):011:0> 14.to_s => "14"
C++では、このようなやり方はしないでください。
to_sメソッドは、オブジェクトを文字列に変換します。従って、14.to_sを呼び出すと、文字列"14"が返されます。.NETのToString()メソッドと同様に、to_sメソッドは実際にはObjectクラスのメソッドなので、Rubyのあらゆるデータを文字列に変換できます。
文字列
Rubyの文字列には、当然あるべき操作がすべて用意されています。
irb(main):012:0> "hello" + "there"
=> "hellothere"
irb(main):013:0> "Reader".length
=> 6
irb(main):014:0> "Reader".reverse
=> "redaeR"
irb(main):015:0> "reader".capitalize
=> "Reader"
irb(main):016:0> "Reader".include?("foo")
=> false
irb(main):017:0> "Reader".include?("ade")
=> true
irb(main):018:0> " Reader ".strip
=> "Reader"
irb(main):019:0> "Reader".gsub("e", "f")
=> "Rfadfr"
irb(main):020:0> "Reader".delete("ea")
=> "Rdr"
irb(main):021:0> "a" < "b"
=> true
あまりなじみがないと思われるいくつかの文字列操作も利用できます。例えば次のコードは、ある文字列がアルファベット順で他の2つの文字列の間に入るかどうかを評価します。
irb(main):022:0> "Bob".between? "Adam", "Chris" => true
乗算演算子を使うと、指定した回数だけ文字列が繰り返されます。
irb(main):023:0> "hi" * 5 => "hihihihihi"
cryptメソッドは、指定した文字列にソルトを付けた一方向ハッシュを返します。これはパスワードなどの機密データを格納するときに役立ちます。
irb(main):024:0> "Reader".crypt("ab")
=> "abofgDjq6JNJo"
