注释

单行注释
—xxxx

多行注释
—[[
xxx
xxx
—]]

取消多行注释
—-[[ 多行注释写三个 -
xxx
xxx
—]]

标识符

字母(a-z A-Z) 或 底划线( _) 开头 ,后面加字母、底划线、数字
底划线+大写字母 为 保留字

运算符

算数运算符

  • 加法
    - 减法
    * 乘法
    / 除法
    % 取余
    ^ 乘幂
    - 负号

    关系运算符

    == 等于
    ~= 不等于
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于

    逻辑运算符

    and 逻辑与
    前表达式为 true , 后表达式结果是一个非 bool 值,输出这个值
    x=”hello”
    print(3>2 and x)

or 逻辑或
前表达式为 false , 后表达式结果是一个非 bool 值,输出这个值

x=”hello”
print(1>2 or x)

not 逻辑非
not false 和 not nil 为 true
其他 not xxx 都为 false

其它运算符

.. 字符串拼接 ‘aa’..’bb’ —> aabb
# 字符串字节长度 ‘aa啊’ —> 5

变量

全局变量
默认值为 nil
局部变量
local a = 1
image.png

多个变量同时赋值

变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量

变量个数和值的个数不一致:
变量个数 > 值的个数 按变量个数补足nil
变量个数 < 值的个数 多余的值会被忽略

a, b, c = 0 —> 0 nil nil
a, b, c = 0,1,2,3,4 —> 0 1 2

数据类型

nil

无效值
只有值nil属于该类

boolean

false 和 nil 看作是 false,其他的都为 true,数字 0 也是 true

number

integer 整型
float 双精度浮点型

不管整型还是双精度浮点型,type() 返回都是 number

string

字符串由一对双引号或单引号来表示
2 个方括号 “[[ ]]” 包含多行字符串
纯数字字符串上进行算术操作时,会转成数字

function

table

本质是一种 辅助数组
可以数值做索引,也可除nil外的其它类型做索引

thread

userdata