AMXXPawn 字面量、表达式、语句

1. 字面量(Literal)

字面量是指直接在代码中明确表示固定值的符号。它们是源代码中直接写出的数据值,不需要通过变量或计算来获取。

字面量可简单分为单值字面量、数组字面量。

字面量也可以称呼为表达式,单值字面量是原子表达式,数组字面量是复合表达式。

点击查看字面量指南

2. 表达式(Expression)

表达式是能求值并返回一个结果的代码单元,可以是:

原子表达式指的是不可再分解的最小计算单元,直接表示一个具体的值或操作。

复合表达式通常指的由多个子表达式通过运算符组合成的表达式。

关键特性:

编译时就能确定数值的表达式被称为常量表达式

单值字面量是不可再分解的最小计算单元,属于原子表达式,例如:0b_1111、1024、0xFF、512.0

数组字面量或与运算符组合的单值字面量,属于复合表达式,例如:{ 1, 2, 3 }、-512、 256 + 256

任何字面量都在编译时就能确定数值,因此全都属于常量表达式

const可用于定义常量,常量、常量与运算符的组合也属于常量表达式

定义常量、变量的初始值时,通常要求填写常量表达式作为初始值。

注意:

3. 语句(Statement)

语句有3个大类:

语句通常以分号;结尾,不过amxxpawn默认情况下允许省略分号。

某些语句会拥有{}代码块,若代码块允许含有语句,则这个代码块被称为语句块复合语句块

如果语句块只含有一条语句,大部分情况下是可以省略{}花括号的。

多个表达式之间可通过逗号连接成复合表达式或表达式语句

// 省略函数体的{}花括号,这种情况下只允许填写一条语句。 public plugin_init() // 用逗号将两个复合表达式组成一条新的复合表达式。同时这是一条表达式语句。 register_plugin("插件名称", "1.0.0", "插件作者"), server_print("第二条复合表达式");

注释不是语句,注释在编译时就已经被删除了。

编译器指令通常不算是语句,大部分指令会在编译时删除,小部分会被替换成可能包含语句的文本。

下一篇教程:

07. 符号指南