ここでちょっと壁にぶち当たりました。私のコードが次のようなものだとしましょう:
def foo
if bar
123
else
nil
end
end
ここで、戻り値は Int または Nil のいずれかです。私はオプションの概念 (Rust、F#、Haskell などの言語) に慣れていますが、これには本当に混乱しています。
問題なく任意の型の値を返すことができることを認識していますが、より機能的なバックグラウンドから来ると、それは間違っているように感じます.
Rust では、Option<T>
. Some
そうすれば、値が返されるか、値が返されないか ( ) を簡単にテストできますNone
。ただし、Ruby/Crystal では、これはばかげたことのように思えます。
それで、ここに質問があります:返してそれに対してテストする有用な値がない場合、
私はただ返す必要がありますか?これはそのようなケースを処理する慣用的な方法ですか? nil
そうでない場合、どのように慣用的な方法でそれを行うべきですか?