Ich habe mehrere Stilrichtlinien und andere Ressourcen gelesen, in denen es eine schlechte Idee ist, Unterstriche in Methoden / Variablen / anderen Namen zu verwenden.
Was sind die technischen Gründe dafür?
Ich bin sehr an z.B. Hilfsfunktionen mit _ vorstellen. Es gibt auch Funktionen, die privat sein sollten, die ich veröffentlichen möchte, damit ich über die REPL darauf zugreifen kann. Andere Namenskonventionen wie die Verwendung eines "Helfer" -Suffixes erscheinen einfach umständlich.
Irgendwelche Gedanken würden geschätzt werden!
Der Platzhalteroperator _
wird in Scala stark verwendet. Also:
ist verwirrend. Sie müssen sehr sorgfältig prüfen, ob der Unterstrich vorangestellt ist.
Interne Unterstriche sind jedoch schwerer zu verwechseln:
%Vor%Das sind also weniger problematisch, aber die Unterstriche noch fallen ein wenig auf, wenn man nach Schließungen sucht. Dies ist wahrscheinlich der Grund, warum sie entmutigt sind, aber um ehrlich zu sein, benutze ich sie die ganze Zeit, insbesondere in Dingen wie impliziten Defs und internen Variablen, wo sie in einer Schnittstelle nicht viel oder gar nicht exponiert sind.
Ich kenne nur den Grund, warum ich Unterstriche in Namen vermeide: Sie sind ein wichtiger Teil der Scala-Syntax, die überall auftauchen. Sicher, Sie können sie in Namen setzen, aber es neigt dazu, den menschlichen Parser nach meiner Erfahrung zu verlangsamen.
Aber ich muss gestehen, dass ich gelegentlich ein Unterstrichpräfix für private Variablen in veränderbaren Objekten verwende, wenn ich den nicht unterstrichenen Namen für öffentliche Methoden haben möchte. Es wäre schön, wenn wir Primzahlen (foo ') wie Haskell verwenden könnten, aber ich denke, das wäre lexikalisch schwierig.
Zusätzlich dazu, dass _
in der gesamten Sprache nicht nur als Platzhalter verwendet wird, sondern auch als Teil öffentlicher APIs wie in Tupeln ( someTuple._1
etc), wird es in einigen Fällen auch vom Compiler speziell interpretiert. Zum Beispiel in Setter , die mit _=
oder in unären Operatoren versehen werden müssen, denen unary_
vorangestellt werden muss.
All dies macht es wirklich einfach, einen "speziellen Namen" zufällig zu verwenden oder einen "gewöhnlichen Namen" falsch zu interpretieren, wenn jemand etwas Ähnliches verwendet, aber nicht genau dasselbe wie ein "spezieller Name". Es spielt keine Rolle, ob es zufällig passiert ist oder aus Mangel an Wissen, aber wenn es passiert, werden Sie wahrscheinlich ein paar Stunden damit verbringen, nach einem Käfer zu suchen. Also benutze sie nicht, außer du musst es wirklich tun. DSLs sind wie immer eine Ausnahme.
Ich denke, diese Spezifikationen sprechen nur über Unterstriche in Namen.
in welcher (vernünftigen) Weise sollten Sie folgendes schreiben, wenn nicht auf diese Weise?
%Vor% Ich denke, der Grund für camelCase
anstelle von embedded_underscores
ist einfach, dass Java das verwendet und wenn man mit Java-Bibliotheken arbeitet, kann Konsistenz nur so gehalten werden.
Tags und Links scala