1. ホーム
  2. ruby

なぜRubyには単一のBooleanクラスではなく、TrueClassとFalseClassがあるのですか?

2023-11-11 01:55:47

質問

値をシリアライズする作業をしていて、このことを知りました。Rubyでは TrueClass クラスがあり FalseClass クラスがありますが、これには Boolean クラスがありません。この理由を知りたいです。

を使うことには、いくつかの利点があると思います。 Boolean 例えば、文字列の解析はその上で一元化されるかもしれません。

Rubyの開発者は私よりも賢いので、私が見ていないだけで、たくさんの良い理由があるに違いありません。しかし、今現在、私には OneClassTwoClass の代わりに Fixnum .

どのように解決するのですか?

この質問に対しては、Matz氏自身が メーリングリストメッセージ で答えているようです。

彼の回答の短いバージョン: "現在、それは大丈夫です、ブール値を追加しても何の利点もありません"。

個人的にはそれには同意できません。前述の "string parsing" はその一例です。もう 1 つは、変数の型によって異なる処理を適用する場合 (たとえば、yml パーサー)、"Boolean" クラスを持つことは便利です - それは 1 つの "if" を削除します。また、その方がより正しく見えますが、これは個人的な意見です。