2012-08-09 22 views
5

Wenn ich etwas vom Typ Option zurückgebe, scheint es sinnvoll, im Namen des Funktionsnamens zu erklären, dass es eine Option ist, nicht das Ding selbst. Zum Beispiel haben Seqs reduceOption. Gibt es eine Standardbenennungskonvention? Dinge, die ich gesehen habe:Scala Namenskonvention für Optionen

maybeFunctionName

functionNameOption

- weder scheint so toll zu sein.

+2

Was ist mit 'functionNameOpt'? Es ist kürzer und immer noch beschreibend. Die Namenskonvention 'vielleicht ...' ist wahrscheinlich besser für Haskell geeignet, wo der Optionstyp 'Maybe' genannt wird. –

+3

Entspannen Sie sich und vergessen Sie es. Bald werden Sie sich wohl fühlen, wenn die Namen der Mitglieder nichts über Option sagen, denn in der Praxis ist es immer offensichtlich, ob das Mitglied 'None' zurückgeben kann. Betrachten Sie dies als eine Anpassungsphase –

Antwort

13

reduceOption und Freunde (headOption, etc.) werden nur so genannt, um sie von ihren unsicheren Alternativen zu unterscheiden (was wohl nicht an erster Stelle, dh existieren sollte, sollte es nur ein head sein, dass ein Option[A] zurückgibt) .

whateverOption ist nicht die übliche Praxis in der Standard-Bibliothek (oder die meisten anderen Scala-Bibliotheken, die ich kenne), und im Allgemeinen sollten Sie nicht brauchen oder wollen diese Art von ungarischen Notation in Scala verwenden.

7

Warum möchten Sie Ihre Funktionsnamen länger machen? Es trägt nichts bei, da die Tatsache, dass es eine Option zurückgibt, offensichtlich ist, wenn man den Typ der Funktion betrachtet.

reduceOption ist eine Art Sonderfall, da Sie in den meisten Fällen reduce verwenden möchten, außer dass es bei leeren Sequenzen nicht funktioniert.

+0

"als die Tatsache, dass es eine Option zurückgibt, ist offensichtlich, wenn man den Typ der Funktion betrachtet." ... mit Ausnahme, wenn der Typ nicht explizit gemacht wird, da Scala die Typen nicht unbedingt explizit spezifiziert. – omnilinguist