黑马程序员技术交流社区

标题: 标示符的命名规则,就数字(0-9)深究一下! [打印本页]

作者: cbb    时间: 2014-11-10 08:28
标题: 标示符的命名规则,就数字(0-9)深究一下!
应该有很多大神知道这个东西了,我只是爱转一下牛角尖~~嘿嘿~~

正题:
我相信 :你肯定知道标示符是不能用0-9的数字开头的!

那么有没有想过为什么呢?

期待最官方的回答!:lol
作者: 一叶障目    时间: 2014-11-10 10:15
期待答案
作者: Crazy_Eat_Code    时间: 2014-11-10 10:55
哥们 有精力就多敲点代码吧  假如你明明知道了 0 怎么写 你还会纠结它为什么要这样写吗
作者: zhangyangLengen    时间: 2014-11-10 12:01
可能java底层解析有关吧
作者: 20140829    时间: 2014-11-10 13:48
一加一为什么等于二,你想过没有?有些东西目前没必要想,就不要去浪费时间了。
作者: FlyFish    时间: 2014-11-10 15:10
本帖最后由 FlyFish 于 2014-11-10 15:11 编辑

1,全数字时,有可能和赋值操作符冲突。2,不全数字时,底层解析首为数字比其他解析麻烦,至于怎么麻烦就不知道了,貌似Unicode编码的原因……
作者: kerner    时间: 2014-11-10 19:11
因为从古老的汇编语言开始就规定标示符首字符就不能是数字,如果首字母是数字,则编译器语法解析时就需要判断该标示符究竟是数字还是变量名标示符,比如0xefcf,应该是变量名字还是常数呢?这样编译器编译效率会大打折扣,所以就应该有这个规则吧。
传送门:

研究这个问题比较蛋疼,有这个时间还不如多码点代码。
作者: w239983684    时间: 2014-11-10 21:20
涨涨知识。
作者: cbb    时间: 2014-11-11 09:21
20140829 发表于 2014-11-10 13:48
一加一为什么等于二,你想过没有?有些东西目前没必要想,就不要去浪费时间了。 ...

好吧~我只是觉得我们不能只知道表面,不知道内部原理~~~有可能是与ASCII码有关!因为计算机可能识别不了它到底是 数字还是字符~~,在ASCII码取值的时候冲突吧~~
作者: cbb    时间: 2014-11-11 11:12
kerner 发表于 2014-11-10 19:11
因为从古老的汇编语言开始就规定标示符首字符就不能是数字,如果首字母是数字,则编译器语法解析时就需要判 ...

嗯嗯,就是前天晚上忽然想起来为啥,纠结了几个小时,去查了一下编码~~才知道




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2