2013年2月1日金曜日

【作業メモ】 Ruby で String を Boolean にする

Rubyでプログラミング中、String型で"TRUE""FALSE"が取得される箇所があり。それが原因でエラーが出てました。。。

Stringじゃなくて、TrueClassFalseClassで取得したいんだよこっちは!!(心の叫び)

さて、どうしたものかと思案したので、これがスマートかはわからないが対処方法をメモ。


↓【コード】正規表現と三項演算子で変換

例として変数test1,test2にString型で"TRUE""FALSE"を格納、
正規表現と三項演算子で変換した後に、
変数のクラスを調べると確かにTrueClass,FalseClassになっているのがわかる。

c:\temp>irb
irb(main):001:0> test1 = "TRUE"
=> "TRUE"
irb(main):002:0> test2 = "FALSE"
=> "FALSE"
irb(main):003:0> test1.class
=> String
irb(main):004:0> test2.class
=> String
irb(main):005:0> test1 = test1 =~ /^true$/i ? true : false
=> true
irb(main):006:0> test1.class
=> TrueClass
irb(main):007:0> test2 = test2 =~ /^true$/i ? true : false
=> false
irb(main):008:0> test2.class
=> FalseClass
irb(main):009:0>
irb(main):010:0*
irb(main):011:0* exit


Rubyを触りだして2ヶ月ほど経ったが、プログラムを書いていて最近思うのは、
自分の書いているコードがとてもスマートには見えないってこと。
一週間ぐらい前に書いたコードを見るとココこうした方がいいんじゃ・・・って箇所が絶対に見つかる。
そこでまた修正するかどうかを迷うのだ。。。(笑)

0 件のコメント:

コメントを投稿