本系列将从零开始学习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