Lua学习笔记

环境配置

Unity 2020.3.3f1 + XLua + Rider(EmmyLua)

  • 创建 Unity 的 单元测试程序集
  • 导入 XLua
  • Rider 安装 EmmyLua 插件

流程

  1. Rider 中编写 Lua脚本
  2. 编写 单元测试脚本 ,在 单元测试脚本 中用 XLua 加载 Lua脚本
  3. Rider 中运行 单元测试脚本

注释

-- 单行注释

--[[
多行注释
多行注释
多行注释
--]] 

标识符

  • 字母、下划线、数字(不能以数字开头)

  • 区分大小写

关键字

-- 遍历全局变量
for n in pairs(_G) do print(n) end

一般约定:以下划线开头连接一大串大写字母的名字(如_VERSION),被保留用于Lua内部全局变量。

变量

Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。

局部变量的作用域为从声明位置开始到所在语句块结束。

变量的默认值均为 nil

示例

-- test.lua 文件脚本
a = 5               -- 全局变量
local b = 5         -- 局部变量

function joke()
    c = 5           -- 全局变量
    local d = 6     -- 局部变量
end

joke()
print(c, d)          --> 5 nil

do
    local a = 6     -- 局部变量
    b = 6           -- 对局部变量重新赋值
    print(a, b);     --> 6 6
end

print(a, b)      --> 5 6

注意点

  • 默认为全局变量,需要加 local 声明是局部变量。

  • 变量没有定义也可以进行访问(值为 nil

  • 删除一个变量,设为 nil 即可

数据类型

数据类型 描述
nil 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)
boolean 包含两个值:falsetrue
number 表示双精度类型的实浮点数
string 字符串由一对双引号或单引号来表示
function CLua 编写的函数
userdata 表示任意存储在变量中的C数据结构
thread 表示执行的独立线路,用于执行协同程序
table Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。
Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

示例

local x
x = nil
print(type(x)) -- nil

x = true
print(type(x)) -- boolean

x = 11.11
print(type(x)) -- number

x = '字符串'
x = [[
多行字符串
多行字符串
多行字符串
]]
print(type(x)) -- string

x = print
print(type(x)) -- function

x = {
    key1 = "val1", key2 = "val2", key3 = "val3" }
print(type(x)) -- table

注意点

  • type返回的是字符串,做比较时注意两边的类型是否一致
  • string字符串可以用 双引号、单引号、两个中括号 表示

运算符

算术运算符

下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:

操作符 描述 实例
+ 加法 A + B 输出结果 30
- 减法 A - B 输出结果 -10
* 乘法 A * B 输出结果 200
/ 除法 B / A w输出结果 2
% 取余 B % A 输出结果 0
^ 乘幂 A^2 输出结果 100
- 负号 -A 输出结果 -10

关系运算符

下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20:

操作符 描述 实例
== 等于,检测两个值是否相等,相等返回 true,否则返回 false (A == B) 为 false。
~= 不等于,检测两个值是否相等,不相等返回 true,否则返回 false (A ~= B) 为 true。
> 大于,如果左边的值大于右边的值,返回 true,否则返回 false (A > B) 为 false。
< 小于,如果左边的值大于右边的值,返回 false,否则返回 true (A < B) 为 true。
>= 大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false (A >= B) 返回 false。
<= 小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false (A <= B) 返回 true。

逻辑运算符

下表列出了 Lua 语言中的常用逻辑运算符,设定 A 的值为 true,B 的值为 false:

操作符 描述 实例
and 逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。 (A and B) 为 false。
or 逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。 (A or B) 为 true。
not 逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。 not(A and B) 为 tr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值