写在前面的话:Lua是一个脚本语言,嵌入别的语言中。详细的介绍大家自己百度一下Lua值与类型 Lua 是一种 动态类型语言。这意味着变量没有类型,只有值才有类型。语言中不存在类型定义。而所有的值本身携带它们自己的类型信息。 Lua 中的所有值都是一致 (first-class) 的。这意味着所有的值都可以被放在变量里,当作参数传递到另一个函数中,并被函数作为结果返回。 八种基本类型: nil
转载 2024-04-30 09:07:26
103阅读
前置知识点首先,lua并不是一个面向对象的语言,但是我们可以通过适当的方法来模拟出面向对象的效果。 在lua里,最像对象的我们可以马上联想到lua中的表。但是我们印象中的对象普遍都有属性和方法,但表里面好像只有属性啊。比如,local obj = { a = "a", b = "b" }没关系,上面我们也说了,需要使用适当的方法模拟。我们只需要改变一下思路,local obj = { a
转载 2024-05-05 18:20:33
59阅读
Lua是一种动态语言,在语言中没有类型定义的语法。 在lua中有8中基本的类型:1.nil(空)2.boolean3.number(数字)4.string(字符串)5.userdata(自定义类型)6.function(函数)7.thread(线程)8.table(表)函数type可根据一个值返回类型的名称。 print(type("Hello world")) -----------
转载 2024-04-29 15:51:52
26阅读
    虽然网上很多关于Lua调用自定义C++的文章,但不知道为什么,一到自己去实践,总是遇见这样那样的问题,造成失败。让我都怀疑文章的正确性了。。。有些因为细节原因,而文章又没提!踩了无数的坑,昨天终于成功了,今天迫不及待写篇文章与大家分享!    如果对lua与C++如何交互不怎么清楚的朋友,可以看下这篇文章:&
Lua中的面向对象编程,相信目前学习Lua的大部分人都是为了开发手机网游吧。而且基本都是奔着脚本语言的热更新特性去的,所以全脚本开发变得十分流行。对于普及不太广的Lua(相对于C++、Java等主流语言),需要短时间上手开发游戏,对新手而言不算简单。所以大家才更习惯于继续用面向对象思想去折腾Lua吧!1.的对象Lua中如何创建一个了?其实就是一个Table而已,那么,要使用这个去创建多个对
转载 2024-04-11 21:56:39
35阅读
// BaseClass.lua name1.lua.txt 中: 第一行 local name1 = BaseClass(“name1”) local function __init(self,…) end local function __delete(self,…) end name1.__init = __init name1. __delete = __delete return
转载 2024-08-29 23:32:20
59阅读
注: 原文有些地方不够详细或不正确, 我补充完善了一些内容, 如仍有不正确的地方, 欢迎指正.1. Lua实现从网上搜了几个实现,自己照猫画老虎的弄个如下:ClassYM = {x=0, y=0} --这句是重定义元表的索引,必须要有, ClassYM.__index = ClassYM --模拟构造体,一般名称为new() function ClassYM:new(x,y) loc
转载 2024-04-22 21:45:49
71阅读
1、数组使用整数来索引table即可在Lua中实现数组。因此,Lua中的数组没有固定的大小。注意,其索引是从1开始的,这与C++不同。代码:squares = {1, 4, 9, 16, 25}; len=#squares; for i=1,len do print("ayyr:"..i..":"..squares[i]); end print("length"..#squares) 2、二维
转载 2024-02-21 21:39:44
645阅读
Lua利用一个虚拟的堆栈来给C传递值或从C获取值。每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回值压入这个栈(Lua从中拿到C函数调用结果)。  于此相关的C API有几个比较重要的定义如下:  (1)typedef struct lua_State lua_State;   lua虚拟机(或叫
转载 2024-03-19 11:33:07
21阅读
目录1. lua中创建对象2.lua定义的思路3.元表的概念4.定义和实例化5. 重写的方法 lua是一门面向过程的脚本语言,lua语言对于事物、结构通通描述为 table,而和对象作为面向对象语言的核心,在lua中也是通过table 这一结构来模仿和描述;table 这一结构本身即可描述对象,即实例,而定义lua中需要table来仿造 1. lua中创建对象在如java的面
“这项工作有谁来完成”这个问题对于设计和使用对象来说非常重要。在编写程序之前,很重要的一步就是问问自己需要哪些,每个分别完成什么功能。如下是一些以前使用过的:string        处理文本数据vector       数据列表queue        队列,先入先出ifstr
转载 2024-09-26 18:34:04
41阅读
table类型实现了关联数组,关联数组是一种具有特殊索引方式的数组;不仅可以通过整数来索引它,还可以使用字符串或其它类型的值(除了nil)来索引它。此外,table没有固定的大小,可以动态得添加任意数量的元素到一个table中。在Lua中,table既不是“值”,也不是“变量”,而是对象。可以将table想象成一种动态分配的对象,程序中仅仅有一个队它们的引用(指针)。table的创建是通过“构造表
转载 2024-03-26 15:51:00
29阅读
Lua中的模块概念和元表12> 模块与包–建立在table上模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,
转载 2024-04-09 22:23:23
89阅读
 Lua 变量变量在使用前,需要在代码中进行声明,即创建该变量。编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。Lua 变量有三种类型:全局变量、局部变量、表中的域。Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。局部变量的作用域为从声明位置开始到所在语句块结束。变量的默认值均为 nil。实例-- test.lu
这里说明下unity中一般用C# 加lua的方式来支持代码的热更新,而在lua中一般封装来实现业务 这里两年前研究过,没有做记录,今天提到了,发现忘干净了,今天借此机会复习下做下记录吧! 第二节的代码已经找不到出处了 0X01 lua元表和元方法元表设置:setmetatable(table, metatable) 元表读取:getmetatable(table) 元方法操作:metatable
到这里,模板相关基本学习完,现在来利用模板写一个代码例子。这个例子就是自定义一个数组模板,需要实现数组的一些常用操作。例如拷贝,有参构造,查找,删除等。 1.自定义数组需求模板案例描述:实现一个通用的数组,要求如下1)可以对内置数据类型以及自定义数据类型的数据进行存储 2)将数组中的数据存储到堆区 3)构造函数中可以传入数组的容量 4)提供对应得拷贝构造函数以及operator=
转载 2024-03-22 11:49:03
174阅读
1.全局变量的原形在Lua中,要声明全局变量很简单,那就是定义变量的时候,前面不要加上local。这个神秘的全局变量,其实本质上也是一个table,它把我们创建的全局变量都保存到一个table里了。而这个table的名字是:_G 我们来看看代码: -- 定义一个全局变量 gName = "哎哟,很挫哦"; -- 用三种方式输出变量的值 print(gNa
转载 2024-03-25 08:18:38
184阅读
cpp_object_map = {}setmetatable(cpp_object_map, { __mode = "kv" }) local search_basesearch_base = function(t, k) local base_list = rawget(t, "__base_l
转载 2016-12-06 17:19:00
337阅读
2评论
--[[ 在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。 Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。 Lua 函数主要有两种用途: 1.完成指定的任务,这种情况下函数作为调用语句使用; 2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。 optional_fu
转载 2024-02-22 15:40:58
50阅读
1、Lua语言定义 标识符不能以数字作为起始符,也要避免下划线(_)接大写字母,因为这是Lua自身保留的,如_Start。     常量:全大写和下划线,如MY_CONSTANT     变量:第一个字母小写,如myValue     全局变量:第一个字母用小写g表示,如gMyGlobal     函数名:第一个字母大
  • 1
  • 2
  • 3
  • 4
  • 5