Normalerweise haben Sprachen Schlüsselwörter, die Sie nicht direkt mit der exakt gleichen Schreibweise und Groß-/Kleinschreibung für die Benennung von Dingen (Variablen, Funktionen, Klassen ...) in Ihrem Programm verwenden können. Doch manchmal ist ein Schlüsselwort die einzige natürliche Wahl, um etwas zu benennen. Wie können Sie diesen Konflikt in der von Ihnen gewählten Technologie vermeiden/umgehen?
Antworten
Zu viele Anzeigen?Wenn ich in Ruby on Rails entwickle, schaue ich manchmal Folgendes nach Liste der reservierten Wörter .
In Python ist die allgemein akzeptierte Methode, ein '_' anzuhängen
class -> class_
or -> or_
and -> and_
können Sie dies am Beispiel der Betreiber Modul.
Zunächst einmal verhindern die meisten Code-Konventionen, dass so etwas passiert.
Wenn nicht, füge ich in der Regel ein beschreibendes Prosapräfix oder -suffix hinzu:
the_class or theClass infix_or (prefix_or(class_param, in_class) , a_class) or_postfix
Eine Praxis, die in der Regel mit allen Ratschlägen zum Codestil übereinstimmt, die Sie finden können ("Lange Namen sind nicht tödlich", "Längere Variablennamen nehmen nicht mehr Speicherplatz in Anspruch, versprochen.) Im Allgemeinen gilt: Wenn Sie glauben, dass das Schlüsselwort die beste Beschreibung ist, wäre eine etwas schlechtere Beschreibung besser.
Beachten Sie, dass Sie schon mit der Prämisse Ihrer Frage eine Zweideutigkeit einführen, die für den Leser, sei es ein Compiler oder ein Mensch, schlecht ist. Selbst wenn es üblich ist, class, clazz oder klass zu verwenden, und selbst wenn diese Gewohnheit nicht so üblich ist, dass sie eine Gewohnheit ist: Sie nehmen ein Wort, so präzise beschreibend es auch sein mag, und verzerren es und schießen damit die Präzision von w0rd in den "wrd". Jemand, der an eine andere w_Rd-Konvention oder Sprache gewöhnt ist, hat vielleicht ein paar harte Worte für Ihre wolds.
Die meisten von uns haben mehr zu sagen als "Blume", "Haus" oder "Auto", also gibt es in der Regel auch mehr zu sagen über typeNames, decoratees, class_params, BaseClasses und typeReferences.
Hier endet meine persönliche Toleranz bei der Code-Verschleierung:
Niemals(!!!) sich auf Scoping oder obskure Syntaxregeln verlassen, um Namenskonflikte mit "Schlüsselwörtern" zu verhindern. (Ich kenne keinen Compiler, der das zulassen würde, aber heutzutage weiß man ja nie...).
Versuchen Sie das, und jemand wird Sie so in die Pfanne hauen, dass Word für Sie wie TeX aussehen wird!
0 Stimmen
Ähm ich würde dem nicht zustimmen, es ist eine vernünftige programmierbezogene Frage im Gegensatz zu all den Umfragen und SO-Meta-Fragen.