2014年7月15日火曜日

Rubyのuptoに隠れたる罠


Rubyである範囲内で繰り返し処理をする時,uptoメソッドを使うと思います.
3.upto(12){ |i| puts i }  #例1

みたいに.
このuptoメソッドはIntegerクラスのメソッドですが,実はStringクラスにも同名のメソッドがあります.
このメソッドでは,文字列を順番に繰り返します.例えば,アルファベットの順番がわからなくなったら
"a".upto("z"){ |i| puts i } #例2
とすると,aからzまでの文字が表示されます.
数値の文字列にも対応しており,
 "3".upto("12"){ |i| puts i } #例3
で3から12までの数値の文字列が表示されます.
訓練されていないと,例1と例3の違いには気づかないかもしれませんが.

他所から引っ張ってきた「Stringクラスで表現された数値」を「Integerの数値」のつもりで,「なんでuptoが動いているのに,数値扱いされないんだ!」とハマる阿呆は僕だけで良いでしょう.

0 件のコメント:

コメントを投稿