# チュートリアル: Rubyの基礎
Rubyの「1行プログラム」
スクリプト言語としての雰囲気を知ってもらうためRubyの1行プログラムをいくつか紹介しましょう.
# 由緒正しい 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のコメント
Rubyのコメントは#から行末までです.
Rubyの式
Rubyの式は以下のものがあります(主なもの).
- 文字列
- 文字列はシングルクォート(')またはダブルクォート(")で囲まれたものです.ダブルクォートで囲まれた文字列ではC言語の文字列と同じようなバックスラッシュ (\)によるエスケープが指定できます.また,#{}で囲んだ範囲内の式の結果が埋め込まれます.
- 数値
- 整数,浮動小数点数が扱えます.
- 配列/連想配列
- []で囲まれた式の並びは配列を返します.{}で囲まれた式の並びは連想配列を返します.
- 連想配列とは任意の種類のオブジェクトを添字にとる配列です.ハッシュ表とか辞書とか呼ばれることもあります.
- 変数/定数
- Rubyには変数が3種類と定数があります.変数/定数の種別はその最初の1文字で区別できます.
- ローカル変数
- 小文字のアルファベットから始まる.使う時には代入で初期化する必要がある.
- グローバル変数
- $から始まる.未初期化の値はnil.
- インスタンス変数
- @から始まる.未初期化の値はnil.
- クラス変数
- @@から始まる.未初期化の値はnil.
- クラス定数
- 大文字のアルファベットから始まる.未初期化の値はnil.
- 代入
- 変数への代入は以下の形式です.
- メソッド(関数)呼び出し
- あるオブジェクトに固有の操作(メソッド)を実行するための形式は以下の通りです.
- 曖昧でない限り引数の括弧は省略できます.
- メソッドの実行主体であるselfのメソッド呼び出しは最初の式を省略できます.
- 引数の無いメソッド呼び出しとローカル変数の参照は代入の有無で区別されます.
- 演算子式
- 通常の数式は(C言語とほぼ同じ)演算子を使って表現できます.ただし,内部的には演算子も(演算子を名前に持つ)メソッド呼び出しとして処理されています.
変数 = 式
式 . メソッド名 式 . メソッド名 ( 式..)
メソッド名 メソッド名 ( 式..)
Rubyの文
Rubyでは任意の式をセミコロン(;)または改行で区切った並びを文とします.文の値は一番最後に実行された式の値です.
Rubyの制御構造
Rubyでは以下の制御構造が使用できます.
if 式 then 文 [elsif 式 then 文].. [else 文 ]endcase 式 when 式..; 文... [else 文 ]endwhile 式; 文 endfor 変数.. in 式; 文 end
ifとwhileの意味は通常の言語とほぼ同じです.if文のthenはセミコロンまたは改行で代用できます.C言語ではelse ifと記述するものがRubyではelsifとひとつになっていることに気をつけてください.
caseは複数の比較をひとつにまとめるための制御構造です.
forは配列などの要素をひとつずつ変数に代入しながらループします.
ループ内では以下の文が使えます.
- break
- ループの実行を中断します(Cのbreak相当).
- next
- ループの次の実行を開始します(Cのcontinue相当).
- redo
- ブロックの先頭行からやり直します.
良く使われる手続き
Rubyのプログラムで良く使われる手続きをいくつか紹介しておきます.これらはObjectクラスのメソッドで,どのクラスからでも関数のように使えます.
- exit([ステータス])
- プログラムの実行を終了します.ステータスとして整数が指定された時にはそれが終了ステータスとなります.ステータスのデフォルトは0です.
- gets
- コマンドライン引数で指定されたファイル(群)から 1行読み込んで,その行を文字列として返します.コマンドライン引数が指定されていない時には,標準入力から読み込みます.読み込んだ文字列は変数 $_にも代入されます.ファイルの終りではnil(偽)を返します.
- というのは良く使われる典型的なパターンです.
- open(ファイル名[, モード])
- ファイルをオープンします.モードは文字列でCのfopenと同じです.省略した時には読み込みモードでオープンされます.
- 出力関数.引数を順に標準出力に出力します.引数が省略された場合には変数$_の値を出力します.
while gets ... end
Last update on December 13, 2002 23:54
Ruby