2010-05-18 17 views
7

Java ermöglicht, dass der Bezeichner mit $ (Dollarzeichen) beginnt oder diese enthält. z.B. int a $ b;Warum ist # in einem Bezeichner nicht erlaubt?

Aber warum # ist in einem Bezeichner nicht erlaubt? Was ist der spezifische Grund? Ist # ein Operator oder etwas in Java? z.B. int a # b; mit Ausnahme von #, @, ~, `

Ich denke, dies ist aus Gründen der Lesbarkeit - -

Antwort

8

Ich würde sagen, dass es eine Kombination aus Lesbarkeit und den historischen Vorgängern der Sprache ist. Denken Sie daran, dass die Java-Syntax so konzipiert wurde, dass sie für C- und C++ - Programmierer leicht verständlich ist. (Und wie @ dan04 weist darauf hin, der # Charakter ist von Bedeutung in den meisten Dialekten von C und C++.)

übrigens während $ technischen legal ist in Java Bezeichner, es ist reserviert für die Verwendung durch Compiler, Code-Generatoren und andere Dinge . Wenn Sie $ in Bezeichnern in Ihrem Quellcode verwenden, riskieren Sie Probleme mit Kollisionen mit synthetischen Bezeichnern, die z. B. vom Compiler javac erzeugt werden.

1

Variables können Buchstaben, Ziffern, Unterstrichen und Dollar-Zeichen enthalten int s#@t; scheint seltsam.

3

Ich bezweifle, es gab einen bestimmten Grund für die Ablehnung # so viel wie es gab eine allgemeine Abneigung gegen Interpunktion in Bezeichnern (die aussehen könnte wie Operatoren). Spezielle Ausnahmen wurden gemacht, um mit WORD_SEPARATION und Inner $ Classes umzugehen. In C und C++, auf denen die Java-Syntax basiert, wird für preprocessor Direktiven verwendet.

Verwandte Themen