这是Lua设计与实现专栏的第6篇文章,专栏由于工作原因已经停更很久了,最近有些闲暇时间可以继续对Lua5.3中的增量GC算法进行一个比较深入的研究,本文主要分为顶层设计和具体实现两个大块。 文章以lua5.3源码为背景进行讨论。1.背景和C#、Java类似,lua采用了Mark&Sweep的算法来进行垃圾回收,与之相对的还有个常用算法是Automatic Reference
setTimeout()在js类中的使用方法   setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout  在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次 setTimeout 在执行时
setTimeout()是js中的一类重要函数,将一段代码延迟一定时间并异步执行。但是这个函数经常不听话。在实践中,可能经常有人碰到类似下面的这种情况:for (var i = 1; i <= 2; i++) { setTimeout(function() { alert(i) }, 100); } 我们期望的结果是,先隔100毫秒弹出1,再隔100毫秒弹出2。但是跑起来后
  先来几条纲领: 1.函数在被直接调用的时候,其中的this指针永远指向window 2.匿名函数this总是指向window对象 3.谁执行函数,this就指向谁 4.如果函数new了一下,那么就会创建一个对象,并且this指向新创建的对象 前些天在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向windo
javascript中的setTimeout,大家都知道是这样调etTimeout调用不了。如果这个f是嵌套在一些事件或其他函数体内,s
原创 2022-08-15 14:01:34
112阅读
一:精度的自动提升整型数据有: byte、 short、 int、 long, 他们都有自己的最大直和最小值,而且都有默认值,整型数据的默认值就是0。DEMO:定义一个int类型的变量 以上的输出结果是25.0,原因是数字在进行四则运算的时候会自动提升精度,最终计算出来的结果的精度以高精度的为准,这种现象叫做精度的自动提升。DEMO: int 类型的最大值和
转载 2024-10-14 14:37:18
15阅读
键值操作$redis = new Redis(); $redis->connect('127.0.0.1', 6379); //參数:connect(host,port,timeout) //timeout能够为空,在redis.conf里timeout默认300 //pconnect不会主动关闭的连接key//写入值 $redis->set($work->uid, $workS
转载 2023-09-28 10:02:44
232阅读
这样使用,后面的4000无效 这样使用,后面的4000秒有效 通过return function,就有效果。很奇怪!
IT
原创 2021-08-05 16:26:57
393阅读
一箭头函数ES6 允许使用“箭头”(=>)定义函数: 注意:=> 是一个完整的运算符,不能拆开 = >箭头函数一定是匿名函数,要使用“=”赋值接收某一个匿名的箭头函数,来给这个匿名的箭头函数命名。函数的扩展 1【function的基本简化】 之前定义函数要写function关键字:const sum = function(a , b){ return a + b; }现在
转载 2024-10-14 11:07:40
71阅读
1,setTimeout()     从技术上讲,当setTimeout函数被调用时,浏览器将把该语句添加到待执行的语句列表中,同时程序中的其他语句并不会停止,而是继续运行。只要完成了当前正执行的语句,浏览器就会检测待执行的语句列表,并且执行已经到期的语句。如果指定的延迟时间到了,但是浏览器仍在执行其他任务,那么setTimeout函数指定的任务将会延迟,知
转载 2023-06-06 12:57:27
226阅读
也许你过去在setTimeout中传参数一直是这样 setTimeout("pass(" + argu + ")",1000) 这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function!!! 看以下代码实现向里面的function 传参数 <script type="text/javascript"> var _
转载 精选 2007-07-20 16:35:20
831阅读
一、setTimeout(script,millisecond); 是从现在算起多少微秒后运行该代码(只运行一次)setInterval(script,millisecond);  是每隔多少微秒运行一次代码示例:1.执行一次 <span id="time"></span> 秒<script type="text/javasc
原创 2012-11-27 09:19:06
2926阅读
一  Lua函数的定义lua函数(1)Lua 编程语言函数定义格式函数定义: '函数名' + '参数组成的列表' + '函数体' 一对圆括号'()'把参数列表'括起来' 即使被调用的函数'不需要参数',也需要'一对圆括号()' ++++++++++++'分割线'++++++++++++ function function_name(argument1, argument2, ar
转载 2024-02-17 17:28:29
148阅读
funtion(函数)1.1 function(函数)是一种变量和其他编程语言一样(c/c++),lua函数是完成某个功能并返回相应值的代码块,但lua中,函数和number、boolean以及table一样是一种变量,funtion可以赋值给变量、可以作为table的某个成员、也可以作为某个函数的的参数等,具体如下:-- 函数功能: 比较两个数的大小 function compare(a, b)
转载 2024-03-19 22:22:09
59阅读
一、C++中的函数重载机制函数定义时的处理:编译器的函数符号命名机制,C++对代码进行编译时会根据函数名、参数列表(参数类型、数量、顺序)等对函数进行重新命名;函数调用时的处理:(我曾经错误理解为调用时的处理和处理函数定义时类似,通过判断参数类型来得到函数名进行调用,但是这种粗暴的方式会有很多逻辑漏洞,比如未考虑到有默认参数的函数调用,未考虑到编译器自动类型转换的函数调用等)在函数调用时,编译器如
转载 2024-04-11 15:10:11
78阅读
•assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调试信息 •collectgarbage() - 垃圾收集器. (新增于1.10.1) •date(format, time) - 返回当前用户机器上的时间. •error("error message",level) - 发生错误时,输出一条定义的错误
转载 2024-08-16 08:07:11
110阅读
lua_自己对“lua函数”知识点的总结1.lua函数的定义--lua中,函数都是function类型的对象。(1)其可以被比较 (2)其可以赋值给一个对象(3)可以传递给函数(4)可以从函数中返回 (5)作为table表中的键函数的两种定义方式(1)function 函数名 (参数) (2) 函数名 = function(参数)        函数内容      
转载 2024-03-15 20:44:03
66阅读
  Lua中的函数是带有词法定界(lexical scoping)的第一类值(first-class values)。第一类值指:在Lua函数和其他值(数值、字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值。词法定界指:嵌套的函数可以访问他外部函数中的变量。这一特性给Lua提供了强大的编程能力。  Lua中关于函数稍微难以理解的是函数也可以没有名
转载 2024-07-31 15:52:04
61阅读
luac.c 是编译器 luac 的入口文件。老规矩,从 main 函数看起,看看这个过程中程序都做了些什么?int main(int argc, char* argv[]) { char* d="luac.out"; /* default output file */ int i; for (i=1; i<argc; i++) { if (argv[i]
转载 2024-03-19 20:33:08
121阅读
目录一、Lua 的基本语法1.注释2.变量3.数据类型4.控制结构二、Lua函数1.函数定义2.函数调用3.变长参数4.表(Table)5.模块和包三、总结 一、Lua 的基本语法1.注释代码如下(示例):-- 这是一行单行注释 --[[ 这是一个 多行注释 ]]2.变量代码如下(示例):-- Lua 是一种动态类型的语言,变量不需要声明类型,可以直接赋值 -- 变量名可以由字母,数字,下划
转载 2024-08-04 15:20:02
29阅读
  • 1
  • 2
  • 3
  • 4
  • 5