随笔分类 - Lua
关于lua
摘要:Unity+Lua调试工具集合: 一、VSCode 插件 1、EmmyLua 使用教程:https://www.cnblogs.com/atong/p/14236179.html 2、LuaPanda 3、LuaPerfect 4、LuaIde 二、IntelliJIDEA插件 1、EmmyLua
阅读全文
摘要:Unity中的Lua 的3.1.4节(比较完整地介绍怎么在vscode下使用EmmyLua实现代码提示和调试,但讲解使用的是XLua,而不是ToLua) EmmyLua for VSCode(github上的EmmyLua for VSCode) EmmyLua on marketplace.vis
阅读全文
摘要:在使用Lua的过程中,经常会遇到需要截取字符串或者获得字符串真实长度的情况,而Lua自带的string.sub()对于中文字符会当作3个字符来处理,截取时会造成乱码。所以需要自己改造下,下面的SubStringUTF8()方法是我改编的SubString方法,经测试可以识别中英混合的字符串,不管是英
阅读全文
摘要:table是Lua中唯一的数据结构,其他语言所提供的数据结构,如:arrays、records、lists、queues、sets等,Lua都是通过table来实现,并且在Lua中table很好的实现了这些数据结构。 1、数组 在Lua中通过整数下标访问table中元素,既是数组,并且数组大...
阅读全文
摘要:项目要求对lua脚本进行加密,查了一下相关的资料 ,得知lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,试了一下,确实可行。下面是使用原生的lua解释器编译字节码:1、新建一个名为1.lua的文件,里面只有一句话print("Hello Lua"),新建一个空的out....
阅读全文
摘要:1、迭代器与闭包 迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素。 迭代器需要保留上一次成功调用的状态和下一次成功调用的状态,也就是他知道来自于哪里和将要前往哪里。闭包提供的机制可以很容易实现这个任务。...
阅读全文
摘要:Lua中的函数是带有词法定界(lexical scoping)的第一类值(first-class values)。第一类值指:在Lua中函数和其他值(数值、字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值。词法定界指:嵌套的函数可以访问他外部函数...
阅读全文
摘要:函数有两种用途: 1).完成指定的任务,这种情况下函数作为调用语句使用; 2).计算并返回值,这种情况下函数作为赋值语句表达式使用。 1 function func_name (arguments-list) 2 statements-list; 3 end; 4 5 --调用函数...
阅读全文
摘要:Lua像C一样,几乎支持所有的传统语句:赋值语句、控制结构语句、函数调用等,同时也支持非传统的多变量赋值、局部变量声明。 1、赋值语句: 赋值是改变一个变量的值和改变表域的最基本的方法。1 a = "hello" .. "world"2 t.n = t.n + 1 Lua可以对多个变量同时...
阅读全文
摘要:构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:1 days = {"Sunday", "Monday", "Tuesday", "Wednesday",2 "Thursday", "F...
阅读全文
摘要:Lua中的表达式包括数字常量、字符串常量、变量、一元和二元运算符、函数调用。还可以是非传统的函数定义和表构造。 1、算术运算符1 二元运算符:+ - * / ^ (加减乘除幂)2 一元运算符:- (负值)3 --这些运算符的操作数都是实数 2、关系运算符1 = ...
阅读全文
摘要:lua是动态类型语言,变量不要类型定义。lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。 可以通过type测试给定变量或者值的类型。1 print(type("Hello world")) ...
阅读全文
摘要:在lua开发中我们经常会混淆这两者之间的区别,下面通过一个示例来解释: 1 Class = {} 2 Class.__index = Class 3 4 function Class.new(x,y) 5 local cls = {} 6 setmetatable(cls, C...
阅读全文