在Lua中具有一个代码块的概念,每个函数或者for循环等都是一个代码块。在Lua中,用 “- - ”来标记该行的注释,使用“- - [ [” 和 “ - - ] ] ”之间括起来的部分进行块注释
Lua 是动态类型语言,变量不要类型定义。
Lua中变量没有类型,值才有类型。
Lua 中有8 个基本类型分别为:
类型 | 说明 | 简介 |
nil | 空类型 | 用于表示空 |
boolean | 布尔类型 | 取值true和false |
number | 数字类型 | 表示实数(包括整数和浮点) |
string | 字符串类型 | 表示字符和字符串 |
table | 表类型 | 关于容器,可作为数组、链表、集合等数据结构的使用 |
function | 函数类型 | 函数本身也是值 |
userdata | 自定义类型 | C的自定义数据,如结构体、指针 |
thread | 线程类型 | 表示协同对象 |
String类型指字符的序列。lua是8位字节,
Lua中判断,除了false和nil为假,其他值都为真。包括数字0和空的字符串都是真。
表达式
一些特别的点:
1. ~=相当于c语言里面的!=,不等于。
2. table、userdata和function是引用比较,只有两个变量指向同一个对象才是相等。
3. 逻辑运算符是"and or not",但是这里的and和or意思跟c语言有不同:
a and b:如果a为false,则返回a,否则返回b;
a or b :如果a为true,则返回a,否则返回b。
and 的优先级比or 高。( 语言中的三元运算符a?b:c。在Lua 中可以这样实现:
a=10
b=20
c=(a>b)and a or b
print(c)
结果为:20
4. “..”两个点,表示字符连接符;如果操作数是number,则转换为字符串:
注意这里1 ..之间有一个空格,不然会报错。
print(1 .. 2) -->12
但是如果是字符串就不需要: