プログラムは式を並べたものです。式と式の間はセミコロン(;)または改行で区切ります。ただし、バックスラッシュに続く改行は文の区切りにならず、次の行へ継続します。
例:
print "hello world!\n"
式
例:
true (1+2)*3 foo() if test then ok else ng end
Ruby の式には、変数と定数、さまざまなリテラル、それらの 演算子式、if や while などの制御構造、メソッド呼び出し(super・ブロック付き・yield)、 クラス/メソッドの定義があります。
式は括弧によってグルーピングすることができます。
式は評価されると値(評価値)が定まり、その値を返します。ただし、return、break, next といったものは値を返しません。これらは評価された時点で制御が移ってしまいます。
空の式 () は nil を返します。
また、メソッドの引数に指定できない式と指定できる式があります(このような式を「文」と呼び分ける場合があります)。
- メソッドの引数に指定できない式の例
-
and, or, not
if/unless/rescue 修飾式, ...
メソッドの引数に指定できない式は、括弧によるグルーピングを行うことで普通の式として使用することができます。
プログラムの終り
Rubyインタプリタはプログラムを読みこんでいる際に以下のものに出会うとそこで読みこみを終了します。
- ファイルの終り(文字列をevalしている場合は文字列の終り)
- ^D(コントロールD) 、^Z(コントロールZ)
- __END__のみの行(前後に空白があると認識されません)