07 2014 档案
摘要: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...
阅读全文