Why is hyphen
(-) an illegal char in Java identifier? Why can't we use variable names like
first-name, as we do in xml files? The answer to this question is not hard, but the challenge is, can you answer it in 1 minute. I didn't.
- First, hyphen is the same symbol as the arithmetic operator minus. So for variables like
first-name, we don't know if it's a single variable named
first-name, or the numeric variable
firstminus another numeric variable
name. Neither does the compiler. So the easiest solution is to disallow
-. XML is a markup mark-up language, not programming language, so hyphen is no problem there.
- Secondly, hyphen is already used in other operators like ->, though it's not in Java yet. If you have an expression like
first-result->second, you don't know if it's a pointer operation, or a comparison between
second. Java has rejected -> from C++, but maybe one day it will take it from PHP.