字面量 vs 标识符 vs 关键字
大约 1 分钟
这三者是互不相交的关系。
字面量 vs 标识符
- 字面量是上下文无关的,而标识符依赖上下文 例如你无论在哪里写
2024,它都代表2024这个整数。但标识符的内容是不确定的。例如我单独写出一个num_of_apples,你无法知道它的值是多少。只有通过上下文推断才能确定它具体的值。
num_of_apples -> lit.int = 3
num_of_apples = num_of_apples * 2 + 3
lit.io.outl(num_of_apples)
上面这个例子中,如果只有第三行,程序无法判断 num_of_apples 标识的是什么玩意儿。只有通过前两行的运行,程序才能最终确定 num_of_apples 的值为整数9。
- 纯字面量的运算是预处理的,如果运算中有标识符的存在,则在运行时处理。
- 像
truefalsenull的字面量与标识符共用一套命名规则,但无法改变他们的性质。也就是说,比如true拥有的性质是与字面量等同的,与标识符不同的。 - 标识符是可赋值的,字面量是不可赋值的。
标识符 vs 关键字
- 关键字与标识符共用一套命名规则。但关键字和标识符没有交集。
- 关键字通常带有特殊的语法规则。
- 关键字不可赋值,也不可被赋值。
- 标识符可以声明和定义,关键字只能是在代码编译过程中定义。
字面量 vs 关键字
这两者都是预处理的。除此之外,它俩好像没什么关系。