再発見

「コードを書き換える前に、久しぶりにマニュアルを読んでる。」

確かあったはずだよなぁ…と思いつつも、見つかられなかった機能を見つけた。制御構文だと思いこんでて、見つけられなかったんだけど、Integer クラスのインスタンスメソッドだった。

100.times{|i|
  puts i
}

回数だけが問題となる時に、開始値、終了値を考えるのは気持ち悪いので、これを積極的に使わねば。試してみたところ、for ループより 10% ほど効率もいいみたい。

確かあったはずだよなぁ…と思いつつも、見つかられなかった機能をもう一つ。

DATA.each {|line| puts line}
__END__
<html>
  <head><title>テスト</title></head>
  <body><h1>テスト</h1></body>
</html>

昔、他の言語で似たようなのを見たことがあるなぁ…と考えていたんだけど、BASIC だったかな? DATA がスクリプトの __END__ マーク以降をアクセスする File オブジェクトになってて、ちょっと便利に使えそう。