2012-08-09 9 views
5

タイプOptionの何かを返すとき、関数名の名前で、それはオプションであり、物そのものではないことを説明すると便利です。たとえば、seqsはreduceOptionです。標準的な命名規則はありますか?私が見ているもの:オプションのスカラ命名規則

maybeFunctionName

functionNameOption

は - どちらも、すべてその偉大であると思いません。

+2

'functionNameOpt'についてはどうですか?それはより短く、まだ説明的です。 命名規則 'maybe ...'はおそらくオプション型が 'Maybe 'と呼ばれるHaskellに適しています。 –

+3

ちょっとリラックスして忘れてください。まもなくメンバーが「None」を返すことができるかどうかは、実際には明らかです。これを、適応フェーズ –

答えて

13

reduceOptionや友人(headOption、など)だけでその危険な選択肢と区別するためにそのように命名されている(恐らく間違いなく最初の場所、すなわちには存在してはならない、ただOption[A]返しheadがあるはずです) 。

whateverOptionは、標準ライブラリ(または私が知っている他のほとんどのScalaライブラリ)の通常の方法ではありません。一般に、この種のハンガリー表記をScalaで使用する必要はありません。

7

なぜ機能名を長くしたいのですか?関数の型を見ると、Optionを返すという事実は明らかです。何も貢献しません。

reduceOptionは特殊なケースです。ほとんどの場合、空のシーケンスでは機能しないという点を除いてreduceを使用したいと思っています。

+0

を "関数の型を見るとOptionを返すという事実を考慮してください。"と考えてください。 ... Scalaがタイプを明示的に指定することを必ずしも推奨しないので、型が実際に明示されていない場合を除きます。 – omnilinguist