本系列将从零开始学习Lua的基本语法,用于之后使用xLua进行unity热更新~
使用Vscode开发Lua
至少要下载 Lua 和 LuaDebug 这 2 个扩展~
看到 LuaDebug 的作者 actboy168,我有点惊讶,actboy168 是大名鼎鼎的 ydwe 作者之一,在以前自己玩 we 的时候用的编辑器就是 actboy168 大佬的,后面听说支持 lua 来代替 jass 编写游戏逻辑(那时候已经弃坑~);好的,闲话不多说,我们来编写我们的第一个脚本。
- 创建一个空文件夹并用vscode打开
- 创建一个test.lua文件
- 编写一行代码
print("Hi,Lua~")
(也可以使用'' 单引号)
基本使用
数据类型
在 lua 中和 python 类型可以直接声明并使用,无需使用类型名,lua 自动分析数据类型。
lua 的数据类型为(8 个):
- nil 空
- boolean 布尔型
- number 数字型
- function 函数型
- string 字符串型
- userdata 用户自定义类型
- thread 线程型
- table 表型
可以使用type()
来查看类型~
Ps: 在 lua 中不强制使用;结尾
--lua类型
print(type(3.4))
print(type("JK"))
print(type(print))
print(type(3>5))
print(type(nil))
Function类型
Function 类型有什么用呢?使用 Function 类型可以实现将函数作为函数的参数传递(类似 c++ 中的句柄,C# 中的委托);有了这一特性,大大加强了代码的灵活性~
Userdata类型
userdata 类型可以表述用户自己创建的数据结构,也可以表示调用 c 语言函数库创建的新类型。
变量类型
全局变量:全局变量是在整个程序中都可以使用的,默认声明的就是全局变量。
局部变量: 局部变量在全局变量前添加local
关键字声明的。
local a=100 --局部变量
b='Fasty' --全局变量
运算符
其他的数学运算符和其他语言是一致的,在这里看一下逻辑运算符and or not
。
在 lua 中认为 false 和 nil 为假,其他为真。(0 也为真,c 语言中认为 0 为假,非 0 为真)
值得注意的是使用逻辑运算符并非返回逻辑值:
local aa = 4 and 5 -- 若a为false则返回a,否则返回b 返回5
aa=nil and 7 --返回nil
local bb= 7 or 8 --若a为true则返回a,否则返回b 返回7
aa=nil or 8 --返回8
小技巧:使用 aa= nil or 5
可以判断 aa 是否为 nil,若为则赋值为 5。
not 则为取反,一直返回布尔值。
Ps:连接字符串使用…
,如A…B
。