Lua
Lua学习
张山大人
这个作者很懒,什么都没留下…
展开
-
Lua-简单的聊一下闭包,并使用闭包创建一个简单的安全沙盒
概念1.lua中的闭包(closure)由一个函数,以及函数会用到的变量(upvalue)组成。2.变量没有说是全局或者局部,因为这里的变量既不是全局,也不是局部的。3.闭包的使用更像是创建了一个临时的环境,这个临时环境中,变量可供这个环境内所有函数调用,但是离开这个闭包环境,这些变量是不可访问的。用处1.闭包可以利用内嵌的私有函数,很巧妙的实现一些简单的面向对象的的逻辑,比如我们要判断一个生成一个圆的判断对象,传统做法:function in_circle(x,y,r,check_x,che原创 2021-05-10 23:41:05 · 222 阅读 · 0 评论 -
Lua-几种可变长参数的遍历方式
Lua跟许多语言一样,提供了可边长函数参数的方式,那我们如果对这一组可变长参数进行遍历呢,lua为我们提供了两种方式,这两种方式各有优劣,我们一起来看一下。第一种:直接对参数进行遍历function add(...) local s = 0 for _,v in ipairs(...) do s = s+v end return s end这种方式十分简便,但是有个问题,它会自动跳过nil值,但是有时候我们需要取判断某个值是不是nil的时候,这种方法就做不到了。第二种,使用tab原创 2021-05-09 19:17:34 · 1264 阅读 · 0 评论 -
Lua-table 一种更少访问的安全取值方式
由于Lua 的table提供的是一种极其泛型化的存储结构方式,会导致编程人员并不会严谨的对某个table中的key进行规范化处理我们设置一个tabletest={a={b={c=1}}}类似这种结构比较深的table,假设我们要取的值不比较深,但是又不能保证a,b,都在程序正常进行中赋值。假设b是个nil,print(test.a.b.c)以上的操作就会报错,并且影响程序的正常执行,因此我们就需要做一个安全判断,由于lua并没有提供一个类似C#的一个安全访问操作符,所以我们可以通过以下方法来判原创 2021-05-09 18:34:34 · 482 阅读 · 2 评论