在许多语言(C#,Javascript,CSS等)中,我无法声明此变量:
123test
但我可以声明:
test123
它的真正原因是什么?
答案 0 :(得分:2)
因为那时一串数字将是有效的标识符以及有效的数字。
int 17 = 497;
int 42 = 6 * 9;
String 1111 = "Totally text";
@skiphoppy 的衣服。
答案 1 :(得分:2)
它简化了解析器。它可以从令牌中的第一个字符判断它是标识符还是数字。
此外,浮点的语法可能如下所示:
123e45
这意味着123x10 45 。如果标识符可以以数字开头,则可能会将其与变量混淆。
有些语言没有这种禁止,例如Common Lisp。它的规则基本上是令牌是符号,除非它可以被解析为数字。由于它还允许自定义输入基数,因此它具有以下属性:令牌是数字还是符号取决于变量的设置(它还具有允许您以某种方式强制它的转义机制)。