リファレンスマニュアルは通読しよう

第39回 Ruby/Rails 勉強会に行ってきた。

KVS と MapReduce の密な関係について」と「それ Mechanize で」もちゃんと聞きたかったけど、遅れて来た人の対応をしたりバタバタしててちゃんと聞けなかった。

JRuby でなんちゃら」では、Ruby から Java のクラスを使う実習付き。
Java の基本を忘れてて講義に付いて行けなかった。

Ruby on Windows; About DB Access”では、Ruby から DB にアクセスするための方法をいろいろ紹介。
Ruby は 1.8.n 限定だったり、文字コードが Shift JIS 限定だったり、前提が強引すぎてウケる。

初級者向けレッスン」は Ruby の歩き方。
アシスタントは まっつん こと松田さん。

「リファレンスマニュアルは通読するもの」らしいので、参加者全員で「るりま」をインストールして String を読んでみる。

そこで謎の表記を発見。

String#each_byte
--- each_byte {|byte| ... } -> ()
--- bytes {|byte| ... } -> ()
--- each_byte -> Enumerator
--- bytes     -> Enumerator

文字列の各バイトに対して繰り返します。

なお、バイトごとに分割した配列を得たいときは、
    ...

戻り値の () って何? nil なの?

okkez 先生に聞いてみると () は「不定」らしい。
でも、each_byte も each も self を返してるっぽいんだけど。
でも Enumerator#each は object って書いてあるなぁ。

Enumerator#each
--- each {...} -> object

生成時のパラメータに従ってブロックを繰り返します。
    ...

不定」って何? 最後に評価した値?
okkez 先生曰くそれは object らしい。
でも、Proc#yield は () を返すって書いてあるよ。

Proc#yield
--- yield(*arg) -> ()

Proc#call と同じですが、引数の数のチェックを行いません。
    ...

ちょっと謎。

次回予告

第40回 Ruby/Rails 勉強会
日時:2010年1月30 (土)
会場:大阪情報コンピュータ専門学校