# 由緒正しい Hello world. print "Hello world\n"
# 入力ファイルの"From "を含む行を印刷する while gets(); print if /From / end
# ファイルに行番号をつける while gets(); print $., ":", $_ end
# πの計算 print 4*Math.atan2(1,1), "\n"
rubyの式は以下のものがあります(主なもの).
文字列はシングルクォート(')または ダブルクォート(")で囲まれたもので す.ダブルクォートで囲まれた文字列ではC言語の 文字列と同じようなバックスラッシュ (\)によるエスケープが指定できます. また,#{}で囲んだ範囲内の式の結果が埋め込まれ ます.
整数,浮動小数点数が扱えます.
[]で囲まれた式の並びは配列を返し ます.{}で囲まれた式の並びは連想 配列を返します.
連想配列とは任意の種類のオブジェクトを添字にと る配列です.ハッシュ表とか辞書とか呼ばれること もあります.
rubyには変数が3種類と定数があります.変数/定数 の種別はその最初の1文字で区別できます.
小文字のアルファベットから始まる.使う 時には代入で初期化する必要がある.
$から始まる.未初期化の値 はnil.
@から始まる.未初期化の値 はnil.
大文字のアルファベットから始まる.未初 期化の値はnil.
変数への代入は以下の形式です.
変数 = 式
あるオブジェクトに固有の操作(メソッド)を実行す るための形式は以下の通りです.
式 . メソッド名 式 . メソッド名 ( 式..)
曖昧でない限り引数の括弧は省略できます.
メソッドの実行主体であるselfのメソッド呼び出し は最初の式を省略できます.
メソッド名 メソッド名 ( 式..)
引数の無いメソッド呼び出しとローカル変数の参照 は代入の有無で区別されます.
通常の数式は(C言語とほぼ同じ)演算子を使って表 現できます.ただし,内部的には演算子も(演算子 を名前に持つ)メソッド呼び出しとして処理されて います.
rubyでは任意の式をセミコロン(;)または改 行で区切った並びを文とします.文の値は一番最後に実行 された式の値です.
rubyでは以下の制御構造が使用できます.
if 式 then 文 [elsif 式 then 文].. [else 文 ]end
case 式 when 式..; 文... [else 文 ]end
while 式; 文 end
for 変数.. in 式; 文 end
ifとwhileの意味は通常の言語 とほぼ同じです.if文のthenはセミコロンまたは改行で代 用できます.C言語ではelse ifと記述するも のがrubyではelsifとひとつになっているこ とに気をつけてください.
caseは複数の比較をひとつにまとめるための 制御構造です.
forは配列などの要素をひとつずつ変数に代入しながらルー プします.
ループ内では以下の文が使えます.
rubyのプログラムで良く使われる手続きをいくつか紹介し ておきます.これらはObjectクラスのメソッドで,どのク ラスからでも関数のように使えます.
プログラムの実行を終了します.ステータスとして 整数が指定された時にはそれが終了ステータスとな ります.ステータスのデフォルトは0です.
コマンドライン引数で指定されたファイル(群)から 1行読み込んで,その行を文字列として返します. コマンドライン引数が指定されていない時には,標 準入力から読み込みます.読み込んだ文字列は変数 $_にも代入されます.ファイルの終 りではnil(偽)を返します.
while gets ... end
というのは良く使われる典型的なパターンです.
ファイルをオープンします.モードは文字列でCの fopenと同じです.省略した時には読み込みモード でオープンされます.
出力関数.引数を順に標準出力に出力します.引 数が省略された場合には変数$_の値 を出力します.
matz@caelum.co.jp Last modified: Wed Jan 28 12:16:41 JST 1998