😎
[Feature #21556] 特定のクラスに #true? / #false? メソッドを追加する提案
[Feature #21556] Add true? and false? methods to NilClass, TrueClass, FalseClass, and String
-
NilClassTrueClassFalseClassStringに#true? / #false?メソッドを追加する提案 - これらは以下のような挙動になる想定
# String
'true'.true? # true
'false'.true? # false
''.true? # false
JPV
'true'.false? # false
'false'.false? # true
''.false? # false
# Boolean
true.true? # true
true.false? # false
false.true? # false
false.false? # true
# Nil
nil.true? # false
nil.false? # false
-
"true" / "false"のような文字列をtrue / falseで判定できるようにしたい、というモチベーションだと思うんですが Ruby 上での真理値の仕様を考えると"false".true? # => falseになったりnil.false? # => falseになるのはかなり直感とずれるので気持ち悪いですね… -
"false"も""も Ruby 上では真だしnilは偽だし - そもそも何を持って
trueなのかfalseなのかを扱いたいのはそのアプリケーションに依存するので Ruby 本体で決めきるのは難しそうですねえ - 最近同じようなチケットみなかったっけ?と思ったら [Feature #20882] Provide Boolean(...) があった
- 全然最近ではなかった
- こっちは
Boolean("1") # => trueみたいに変換するメソッドの提案
Discussion