第四章 基本语法 4.1赋值语句 赋值是改变一个变量的值和改变表域的最基本的方法。 a = "hello" .. "world" t.n = t.n + 1 Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语 句右边的值会依次赋给左边的变量。 a, b = 10, 2*x <--> a=10; b=2*
转载 2024-05-14 08:52:20
62阅读
Lua支持的常规语句包括:赋值、控制结构和过程调用。另外还支持诸如:多重赋值和局部变量声明等不太常见的语句。             赋值          &nbsp
转载 2024-04-12 06:29:42
111阅读
Q:“引用”和“引用计数”?A:“引用”既为对象的名字。比如a = {},名叫a的变量存储的值是一个”table”,”table”的名字是a;同时还可以说变量a存储着”table”的“引用”。 当“(强)引用”被创建时,对象的“引用计数”加1,只要对象的“引用计数”不为0,对象就不会被销毁,Lua的“垃圾回收系统”只回收那些“引用计数”为0的对象。Q:“强引用”和“弱引用”?A:当对象被创建时会
转载 2024-08-16 09:19:50
41阅读
命名参数,有的翻译为具名参数,顾名思义就是给带入函数的参数起个名字,注意这个名字是固定的。我们知道一般的语言,比如c/c++,java等参数只有在函数定义的时候才有类型和变量名,在函数调用时传入的是变量名或者实际值,这里的变量名可以相同也可以不同。// 假定有函数squire int squire(int length, int width); // 我们调用是可以如下调用,带入的变量名可以使a
转载 2024-03-22 06:43:31
37阅读
简单说说Lua中的面向对象Lua中的table就是一种对象,看以下一段简单的代码: local tb1 = {a = 1, b = 2} local tb2 = {a = 1, b = 2} local tb3 = tb1
转载 2024-05-24 20:11:38
56阅读
python  赋值引用1、Python中一切皆为对象  一个对象都有两个标准的头部信息:一个类型标识符去标识这个对象的类型,以及一个引用的计数器,用来决定是不是可以回收这个对象。当没有对象指向这块内存区域,python会自动进行回收。2、赋值操作总是储存对象的引用,而不是这些对象的拷贝。··       python中的变量
转载 2023-09-21 14:01:39
114阅读
在Python的概念来说,万物皆为对象,有些对象可变,如lists、dictionaries,有些对象不可变,如numbers、strings、bools、tuples。函数id(object),返回对象的标识,为整型,也就是对象在内存中的地址,通常在其生命周期内,每个对象的id()各不相同,但是在解释器中对一些小的int和短的字符串,会优化为同一个地址。is是根据id()来判断的。这样,根据id
转载 2024-02-20 11:11:55
27阅读
控制结构 几乎所有的语言都有控制结构,同样,对于Lua的控制结构是非常简单的。Lua提供了用于条件执行的if,循环的while、repeat和for。所有的控制结构都有一个显式的终止符:if、for和while以end作为结尾,repeat以until作为结尾。特别注意,在Lua中是不支持switch结构的。 if 语句: if语句先测试其条件,然后根据测试结果执行then部分或者else部分,e
转载 2024-03-26 21:30:31
175阅读
https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/XLua%E6%95%99%E7%A8%8B.md 本章节涉及到的实例均在XLua\Tutorial\LuaCallCSharp下new C#对象你在C#这样new一个对象:var newGameObj = new UnityEngine.GameObject();对应
转载 2023-09-05 22:46:10
70阅读
4.赋值运算符重载函数1.函数的作用,参数和返回值1.作用  赋值运算符重载函数用于类对象的赋值操作,当我们未实现该函数时,编译器会自动为我们实现该函数。2.参数  赋值运算符重载函数的参数是常引用类型的类类型,声明为常量的好处是可以接受常量参数和非常量参数,声明为引用类型使得参数没有了临时对象的生成,减少了一次拷贝构造的发生3.返回值  大部分人(包括Effective C++)认为赋值运算符重
一、迭代器的定义      “迭代器”就是一种可以遍历一种集合中所有元素的机制。在Lua中迭代器以函数的形式表示,即没掉用一次函数,即可返回集合中的“下一个”元素。迭代器的实现可以借助于闭合函数实现,闭合函数能保持每次调用之间的一些状态。      上例while迭代需要保存一个迭代器iterator来保证每次获
Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制来模拟了类似“类”的行为 举例说明: tempTable = {} print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA 执行结果:nil  输出为nil的
转载 2024-10-31 14:03:25
33阅读
  最近发现在大数据量的 lua 环境中,GC 占据了很多的 CPU 。差不多是整个 CPU 时间的 20% 左右。希望着手改进。这样,必须先对 lua 的 gc 算法极其实现有一个详尽的理解。我之前读过 lua 的源代码,由于 lua 源码版本变迁,这个工作还需要再做一次。这次我重新阅读了 lua 5.1.4 的源代码。从今天起,做一个笔记,详细分析一下 lua 的 gc 是如何实现的
Lua的表非常灵活,尤其是结合元表,功能会非常强大,先根据下面的代码,自己找规律去理解表的用法:-- 初始化表 mytable = {} -- 指定值 mytable[1] = "Lua" mytable["index"] = 1 --这种写法[]内一定要加“” mytable.abc = "abc" print(mytable.index) -- 1 print(mytable
转载 2024-09-12 22:51:24
189阅读
下载vscode 在拓展里install c/c++插件和code runner插件下载MINGW64编译环境 (若已安装好DEVC++,可直接在此安装文件夹里找到MINGW64)配置MINGW64环境变量 path—— bin 在环境变量path里添加,“D:/Dev-Cpp/MinGW64/bin/”INCLUDE—— include查看系统变量里是否存在INCLUDE若无,新建I
转载 8月前
25阅读
Lua调用C的动态库C语言可以完成一些lua不好实现的功能,当程序主体使用lua完成时,便需要掌握该技巧调用C来帮助我们达到目的,通过调用C的动态库简化操作流程。大致流程如下:使用C语言编写方法提供给lua调用将C文件打包成动态库lua导入动态库,直接调用里面的函数 文章目录Lua调用C的动态库准备工作使用C语言编写方法将C文件打包成动态库lua文件中导入动态库并调用其中函数多个返回值方法编写示例
转载 2024-04-01 22:38:56
61阅读
# Java赋值引用的实现 ## 引言 在Java中,赋值引用是一种常见的操作,用于将一个对象的引用赋给另一个对象。这在面向对象编程中非常重要,因为它允许我们在不创建新的对象的情况下操作和修改已有的对象。本文将介绍Java中赋值引用的实现方法,并提供具体的代码示例。 ## 流程概述 下面是实现Java赋值引用的一般流程: | 步骤 | 描述 | | ---- | ---- | | 1 | 创
原创 2023-08-06 10:18:36
60阅读
在项目开发中,为了提高开发效率往往需要开发一些辅助工具。最近在公司用lua帮拓展了一个资源扫描的工具,这个工具的功能就是从原始demo下指定目标资源文件,对该文件进行读取并筛选过滤一遍然后拷贝到最终demo对应的文件目录下。我们知道要读取一个文件必须指定对应路径,而我们在一个大型游戏软件开发中每个人所提交上去的资源都是在不同文件目录下的。所以原先的做法就是手动去把路径一个一个贴出来,整合记录到一个
Lua 源码学习笔记(4)GC参考书籍:《Lua设计与实现》作者书籍对应Github:https://github.com/lichuang/Lua-Source-Internal云风的 BLOG,Lua GC 的工作原理:https://blog.codingnow.com/2018/10/lua_gc.html云风的 BLOG,Lua GC 的源码剖析 (1):https://blog.cod
转载 2024-04-14 16:08:52
48阅读
Java中除了基本类型int,char,double等的赋值是按照值传递之外,其余的类型和对象都是按照引用进行传递的。  下面来看一个关于引用的例子。  package referenceCopy; // 一个文件中允许有多个类,但是public类型的类只能有一个 class Basic { private int aInt = 0; public int getAInt() { retur
  • 1
  • 2
  • 3
  • 4
  • 5