4 Stimmen

Wie vermeiden Sie Überschneidungen bei der Benennung von Schlüsselwörtern?

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?

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.

0voto

allesklar Punkte 9238

Wenn ich in Ruby on Rails entwickle, schaue ich manchmal Folgendes nach Liste der reservierten Wörter .

0voto

John MacIntyre Punkte 12808

In 15 Jahren Programmieren habe ich dieses Problem nur selten gehabt.

Eine Stelle, die mir sofort einfällt, ist vielleicht eine CSS-Klasse, und in diesem Fall würde ich einen beschreibenderen Namen verwenden. Also statt "Klasse", könnte ich "targetClass" oder etwas ähnliches verwenden.

0voto

Aaron Maenpaa Punkte 112919

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.

0voto

Ich bin zu einer Sprache gewechselt, die die Bezeichnernamen überhaupt nicht einschränkt.

0voto

AndreasT Punkte 8667

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!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X