Rubyでプログラミング中、String型で"TRUE""FALSE"が取得される箇所があり。それが原因でエラーが出てました。。。
Stringじゃなくて、TrueClassやFalseClassで取得したいんだよこっちは!!(心の叫び)
さて、どうしたものかと思案したので、これがスマートかはわからないが対処方法をメモ。
↓【コード】正規表現と三項演算子で変換
例として変数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 件のコメント:
コメントを投稿