2007年11月27日火曜日

rubyではまる

最近, 下のようなrubyのプログラムを書いてはまった.

def f x
p x
x.each do |y|
y.each do |z|
f z
end
end
end

f '0'


原因は String の each が1文字ずつ返すもんだと勘違いをしていたこと.
リファレンスマニュアルを読んで勉強勉強.


http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=String#each より
each([rs]) {|line| ... }
each_line([rs]) {|line| ... }

文字列中の各行に対して繰り返します。行の区切りは rs に指定した文字列で、そのデフォルトは変数 $/ の値です。各 line には区切りの文字列も含みます。

rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします (パラグラフモード)。

self を返します。

0 件のコメント: