Rubyでは、メソッド名の最後に疑問符を付けて、戻り値がブール値であることを示す規則があります。ブール値が特別であると見なされるのはなぜですか?メソッドの戻り値が特にブール値であることがわかっている場合、何か便利なものはありますか?結局のところ、Rubyでは、ブール値であるかどうかを気にせずに、あらゆる種類の値を返す(getter)メソッドを条件付きに挿入できます。
ブール値を示すためだけに疑問符を使用するのは無駄だと思います。もっと便利な使い方があるはずです。getterメソッドとsetterメソッドのペアが必要なユースケースがたくさんあります。この場合、setterメソッドはself
、メソッドチェーンで使用できるように返される必要があります。そして、それらに何かのような名前を付けて、面倒get_foo
に見えます。set_foo
規則に従うのではなく、次のようなgetterメソッドとsetterメソッドのペアに名前を付けたいと思います。
def foo?; @foo end
def foo v; @foo = v end
ここで、の値は@foo
(必然的に)ブール値ではありません。(慣習を破ると他のプログラマーを混乱させるという潜在的な批判に加えて)、それを行うことに何か問題がありますか?