01 October 2013
RubyのStringにもInfinityを!- 反省回 -
Float::INFINITYのような無限文字列を表現するString::INFINITY
なるものがほしいとの想いから、前回次のような記事を書いたのです。
時を同じくして@ne_sachirou殿も別の解法を用意していました。
読み比べて頂ければ明白ですが、ここには「人間の素直さの差」というものが如実に現れているんですね(力の差は置いておいてね)。
自分の解法は('b'..'a')
というのはbad value rangeによりArgumentError
になるという誤解から出発したのです。それでArgumentErrorを拾うなどという横道に逸れました。ところがこれはnil
なのです。@ne_sachirou殿の実装の肝はString::INFINITY=''
なのですが、これはRangeに対する信用に基づくものです。
今日一日反省したいと思います。
反省の一環として、@ne_sachirou殿のコードに少し手を入れさせて頂きましたのでgistしておきます。
Ruby2.0において、('a'..'zz').size
はnil
とはビックリです。重量の問題なのでしょうか。
ところでこの#unittest
メソッドは便利ですね。是非使わせてください。
blog comments powered by Disqus