跳至主要內容

字面量 vs 标识符 vs 关键字

Cure-X大约 1 分钟

这三者是互不相交的关系。

字面量 vs 标识符

  1. 字面量是上下文无关的,而标识符依赖上下文 例如你无论在哪里写 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。

  1. 纯字面量的运算是预处理的,如果运算中有标识符的存在,则在运行时处理。
  2. true false null 的字面量与标识符共用一套命名规则,但无法改变他们的性质。也就是说,比如 true 拥有的性质是与字面量等同的,与标识符不同的。
  3. 标识符是可赋值的,字面量是不可赋值的。

标识符 vs 关键字

  1. 关键字与标识符共用一套命名规则。但关键字和标识符没有交集。
  2. 关键字通常带有特殊的语法规则。
  3. 关键字不可赋值,也不可被赋值。
  4. 标识符可以声明和定义,关键字只能是在代码编译过程中定义。

字面量 vs 关键字

这两者都是预处理的。除此之外,它俩好像没什么关系。