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阅读
一、值参数未用ref或out修饰符声明的参数为值参数。使用值参数,通过将实参的值复制到形参的方式,把数据传递到方法。方法被调用时,系统做如下操作。在栈中为形参分配空间。复制实参到形参。值参数的实参不一定是变量。它可以是任何能计算成相应数据类型的表达式。看一个例子:float func1(float val) //声明方法 { float j=2.6F; float k=5.1F; ....
EVERYTHING BEFORE:今天有人问了我一个问题,问我是不是只是做前台页面呢。当然不是啦,前台和后台都有在做的。只不过后台代码相对于前台来说有太多的特性了,各个业务系统不一样业务逻辑不一样,使用框架不一样,所以单独的把项目中的一些心得体会拿出来也不会有太多的作用。而前台的话却有很多共性 HTML JAVASCRIPT JQUERY 等。 PHP很好用不过因为项目的原因我们没有采用 PHP
0.学习资源菜鸟教程1.Lua 变量Lua 变量有三种类型:全局变量、局部变量、表中的域。Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。局部变量的作用域为从声明位置开始到所在语句块结束。变量的默认值均为 nil。2.赋值语句赋值改变一个变量的值和改变表域的最基本的方法。 a = “hello” … “world” t.n = t.n + 1Lua
目录:内联函数引用变量引用变量作为函数参数 使用引用作为形参,会改变对应实参的值以及左值的概念 将引用应用于结构为何要使用引用引用用于类和对象对象、继承和引用何时使用按值传递、按指针传递和按引用传递默认参数函数重载重载示例函数模板重载的模板 显式具体化 实例化和具体化包含的知识点为结构数组,指针数组,模板等 自己选择使用哪个函数模板模板函数的优化,设计到相关函数的引进内联函数/*01)c语言中
    在C#编程的时候经常会使用字符串(string)类型,它也是引用类型,但是处处都不作为引用的用法来使用,实属特例,下来我一一罗列出来,供自己记忆方便:     1)字符串的直接赋值:本身字符串就是引用类型,应该使用  new 对象方法一个实例,但是微软为了方便大家,可以直接定义字符串变量 并且赋值操作,例如: strin
这次要介绍的内容比较少,就一个——弱引用table1.无法超越人类智慧的智能——自动内存管理的缺陷我们都知道,Lua具备自动内存管理的,好吧,也许有些朋友不知道。我们只管创建对象,无须删除对象(当然,对于不要的对象你需要设置一下nil值),Lua会自动删除那些被认为垃圾的对象。问题就出现在,什么对象才是垃圾对象,有些时候,我们很清楚某个对象是垃圾,但是,Lua却无法发现。 比如这样一
大多数计算机命令由两部分组成:命令和参数。命令要执行的程序,而参数可能命令选项或用户输入。如果没有这种结构,用户将不得不编辑命令的代码,以改变命令所处理的数据。想象一下重写 printf 命令只是为了让你的计算机用 “hello world” 消息问候你。参数对于交互式计算至关重要,Lua 编程语言 提供了 {...} 表达式来封装在启动 Lua 脚本时
1. C语言中的staticC语言中的static关键字,可以用来修饰全局变量、局部变量、函数。下面简单讨论一下static在C语言中的作用1.1 修饰全局变量所有全局变量存储在静态存储区中,默认情况下外部的,在一个翻译单元(源文件)中定义的全局变量默认情况下可以被其它源文件引用,只需要在引用的时候加上extern关键字扩展其作用域。使用static修饰全局变量,可以将全局变量的作用域限制在本翻
     最近在学习lua,然后顺便看了下luaj,可能用的人比较少,网上关于luaj的文章较少,其中在网上找到这个博主的相关文章,很详细,对于要学习luaj的小伙伴可以两篇一起查看,本文在此基础上进行扩展。      本文的luaj版本是:luaj-3.0.1LuaJ源码中org.luaj.vm2
local t1= {10,11} function t1.Show() print("t1 show") end function GetT() return t1 end local t2 = GetT() t2[1] = 5 --修改t2会同步修改t1 print(t1[1]) t1[1] = 55 --修改t1会同步修改t2 print(t2[1]) t1 = ni...
转载 2017-12-27 16:04:00
129阅读
2评论
  变量在使用前,必须在代码中进行声明,即创建该变量。  编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。  Lua 变量有三种类型:全局变量、局部变量、表中的域。  Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。  局部变量的作用域为从声明位置开始到所在语句块结束。  变量的默认值均为 nil。-- test.lua
转载 2024-05-21 22:07:41
23阅读
变量的属性存储位置:变量使用的哪一段内存作用域:变量的使用范围生命周期:创建时间~销毁时间注意:作用域和生命周期要特别注意区分概念。变量的作用域全局变量:定义在函数外。存储位置:未初始化的存储在BSS段,被初始化的存储在DATA段作用域:整个程序。比如在a.c定义了全局变量,在b.c中也可以使用。生命周期:main函数执行前就被定义出,程序运行结束后再释放。注意:在程序中,局部变量和全局变量的名
变量引用变量和数据都保存在内存中,分开存储,数据保存在内存中的一个位置,变量记录数据的地址(这个动作就叫做引用),使用ID()查看这个地址注:在c++中,引用指的是变量的小名本人认为,python中的引用就是地址函数的返回值和参数(形参)都是通过引用(地址)来传递的,返回的引用,而不是数据函数有返回值,但是没有定义变量接受,程序不会报错,但是无法获得返回结果def test(num):
全局与局部变量引用(a)locals(b)globals这里还需要在补充2个关键字一起比较学习,关键字:(c)nonlocal(d)global locals 和 globals    locals: 打印当前可用的变量的字典    globals: 返回一个描述当前全局变量的字典提示:locals 获取当前的可用变量,而
【1】多重赋值多重赋值规则:若值的个数少于变量的个数,那么多余的变量会被赋值为nil若值的个数多余变量的个数,那么多余的值会被“悄悄地”丢弃掉。多重赋值应用示例: 1 a, b = 10, 2*3 2 print(a, b) -- 10 6 3 4 a, b, c = 0, 1 5 print(a, b, c) -- 0 1 nil 6 7 a, b = a+1
转载 2024-04-02 15:07:48
63阅读
概念以下列程序为例:public class 数组内存 { public static void main(String[] args) //这是一个main方法 { int it = 20; //占用4个字节 int[] iArr = new int[4]; //数组占16字节 } }一、变量与对象:——变量地址(16进制),对象是创建出来的空间 即:iArr(数组引用)
简单说说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阅读
命名参数,有的翻译为具名参数,顾名思义就是给带入函数的参数起个名字,注意这个名字固定的。我们知道一般的语言,比如c/c++,java等参数只有在函数定义的时候才有类型和变量名,在函数调用时传入的变量名或者实际值,这里的变量名可以相同也可以不同。// 假定有函数squire int squire(int length, int width); // 我们调用是可以如下调用,带入的变量名可以使a
转载 2024-03-22 06:43:31
37阅读
Q:“引用”和“引用计数”?A:“引用”既为对象的名字。比如a = {},名叫a的变量存储的值一个”table”,”table”的名字a;同时还可以说变量a存储着”table”的“引用”。 当“(强)引用”被创建时,对象的“引用计数”加1,只要对象的“引用计数”不为0,对象就不会被销毁,Lua的“垃圾回收系统”只回收那些“引用计数”为0的对象。Q:“强引用”和“弱引用”?A:当对象被创建时会
转载 2024-08-16 09:19:50
41阅读
  • 1
  • 2
  • 3
  • 4
  • 5