Rubyの構文のかんたんな紹介
以下の文章は、Martin Fowler による Simple Ruby Syntax の日本語訳である。
最終更新日: 2003年3月
Ruby は私が思うほど広く使われてはいないようだ。ここでは、私の記事の中に出てくるコードを読めるよう、必要十分な Ruby のシンタックスを紹介する。
Ruby はオブジェクト指向言語であり、クラスとメソッドがある。クラスはclass
というキーワードで始まり、メソッドはdef
というキーワードで始まる。すべてのブロックはend
で終わる。クラス内のインスタンス変数は@
から始まり、グローバル変数は$
から始まる。アクセサ付のインスタンス変数を宣言するには、attr_accessor
を用いる。initialize
メソッドはオブジェクトが生成されるときに呼び出される。
「ブロック」は、Rubyの素晴らしい機能のひとつだ。コレクションをループする処理は良い例である。ここでは、「注文コレクション」中の「注文」を出力するシンタックスを2つ挙げた。どちらも同じ処理を行う。
orders.each {|o| print o}
orders.each do |o|
print o
end
ブロックはリソースを自動的に解放してくれるから便利だ。これを見て欲しい。
$dbh.select_all("select * from FOO") do |row|
print row
end
この実行メソッドは必要な statement と result set オブジェクトを生成し、ブロックの終わりにそれらを確実に close する。Java や C# では、このようなブロックを使うことは難しいか、不可能であろう。(今は別の言語を使っている)旧Smalltalkerはこの機能を待ち望んでいた。
($dbh
はデータベースのハンドラである。dbiパッケージにちなんで省略した)
Rubyの配列は動的なリストである。配列は[foo, bar]
のように生成することが出来る。空の配列は[]
のようにして生成できる。要素を配列に追加するには、<<
を使用する。
Rubyはハッシュ(連想配列、ディクショナリ、ハッシュマップ)も持っている。空のハッシュは{}
のようにして生成できる。要素にアクセスするにはaHash[aKey]
のように行う。
複数行の文字列を作るのに「ヒアドキュメント」という機能がある。そういったテキストを作るときは、sql = <<-END_SQL
で始める。END_SQL
に続く部分はすべて文字列となる。#{anOrder.price}
のようにして、動的に文字列を挿入することもできる。
Rubyについてもっと知りたい場合は、Andy Hunt とDave Thomas による名著を強くオススメする。オンラインでも読めるので、ケチなひとはこちらで。それから、Rubyのホームページはここにある。
改定履歴
メジャーアップデートをしたときにここに記す。
- 2003年3月:
- 日本語訳:kdmsnr
コメント
- 2008-12-03 (水) 10:45:37 umejava : and is something old Smalltalkers miss a lot.の訳は、「(今は別の言語を使っている)旧Smalltalkerはこの機能を待ち望んでいた」ということだと思います。SmalltalkもまさにRubyと同様、リソースを自動解放するためにブロックを使いますので。
- kdmsnr : ありがとうございます。反映しました。