
Lua
宅羽
这个作者很懒,什么都没留下…
展开
-
Lua资料之packagepath
◆ 背景: 当多个lua项目在同一台服务器中有多个文件的文件名相同时,会优先使用路径中的排在前的项目的文件,导致引用的文件并不是你预期的那样。 例如:有项目A和项目B,都有一个文件test原创 2018-08-14 20:56:43 · 4813 阅读 · 0 评论 -
Lua资料之面向对象
◆ 基本特性:如果使用字符串作为key ,那么表本身就是对象,可以任意存储变量和函数local x = {} -- 一个空表,此时没有成员x.name = 'snake' -- 属性name ,值是'snake'x.mission = function() ... end -- 添加一个方法◆ 封装:Lua提供private 、public 这样的修饰词,表里的所有成员都是公开的...原创 2019-05-27 11:14:33 · 285 阅读 · 0 评论 -
Lua资料之模块
◆ 模块的含义和使用:模块就是一个函数集合,通常表现为一个Lua 表,里面有模块作者提供的各种功能函数,使用点号“.”即可访问。使用require 函数可以加载模块,参数是模块所在的文件名(省略后缀),通常我们需要用变量来保存require函数的返回结果。local cjson = require ” cjson " --加载OpenResty的cjson 模块,local化lo...原创 2019-05-27 10:14:47 · 347 阅读 · 0 评论 -
Lua资料之表
表( table )是Lua 里唯一的数据结构, 可以近似地理解为其他编程语言里的字典、关联数组或者key - value 映射,但Lua的表更加灵活,能够模拟出array 、list 、dict 、set, map 等常见数据结构,或者其他任意复杂的结构。...原创 2019-05-27 10:03:28 · 456 阅读 · 0 评论 -
Lua资料之函数
在Lua 语言里函数是一类特殊的变量,它持有一个语句块,能够使用参数执行语句块(也就是“调用”), 然后返回结果。◆ 函数定义函数就是变量,也可以(最好)使用local局部化。[local] function func_name (arguments) ...end这种形式实际上是函数变量声明的简化形式,相当于:[local] func_name = function (argu...原创 2019-05-24 15:51:03 · 224 阅读 · 0 评论 -
Lua资料之控制语句
◆ 语句块:使用“ do … end ”的形式就声明了一个语句(代码)块,里面可以包含任意多条语句。do local x = 10 print ( "x =", x)end◆ 条件语句:if conditions then ...elseif conditions then ...else ...end◆ 循环语句:while循环语句while condit...原创 2019-05-24 14:49:50 · 223 阅读 · 0 评论 -
Lua资料之数学库
Lua 数学库由一组标准的数学函数构成。数学库的引入丰富了 Lua 编程语言的功能,同时也方便了程序的编写。常用数学:math.rad(x) 角度x转换成弧度math.deg(x) 弧度x转换成角度math.max(x, ...) 返回参数中值最大的那个数,参数必须是number型math.min(x, ...) 返回参数中值最小的那个数,参数必须是number型math.rand...原创 2018-08-16 20:46:17 · 472 阅读 · 0 评论 -
Lua资料之table函数
◆ table.getn 获取长度 取长度操作符写作一元操作 #。字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。对于常规的数组,里面从 1 到 n 放着一些非空的值的时候,它的长度就精确的为 n,即最后一个值的下标。如果数组有一个“空洞”(就是说,nil 值被夹在非空值之间),那么 #t 可能是指向任何一个是 nil 值的前一个位置的下标(就是说,任何一个 nil 值都有可...原创 2018-08-16 20:35:25 · 1026 阅读 · 0 评论 -
Lua资料之模块
require 函数 Lua 提供了一个名为 require 的函数用来加载模块。要加载一个模块,只需要简单地调用require “file” 就可以了,file 指模块所在的文件名。这个调用会返回一个由模块函数组成的table,并且还会定义一个包含该 table 的全局变量。在 Lua 中创建一个模块最简单的方法是:创建一个 table,并将所有需要导出的函数放入其中,最后返回这个 t...原创 2018-08-15 21:03:40 · 270 阅读 · 0 评论 -
Lua资料之函数(特殊)
◆ 局部函数: 由于全局变量一般会污染全局名字空间,同时也有性能损耗(即查询全局环境表的开销), 因此我们应当尽量使用“局部函数”,其记法是类似的,只是开头加上 local 修饰符:local function function_name (arc) -- bodyend由于函数定义等价于变量赋值,我们也可以把函数名替换为某个 Lua 表的某个字段,例如functio...原创 2018-08-15 20:57:43 · 247 阅读 · 0 评论 -
Lua资料之控制结构示例(特殊)
◆ 控制结构if-else:score = 90if score == 100 then print("Very good!Your score is 100")elseif score >= 60 then print("Congratulations, you have passed it,your score greater or equal to 60"...原创 2018-08-15 20:31:54 · 118 阅读 · 0 评论 -
Lua资料之基础数据类型(特殊)
◆ nil(空) nil是一种类型,Lua将nil用于表示“无效值”。一个变量在第一次赋值前的默认值是nil,将 nil赋予给一个全局变量就等同于删除它。local numprint(num)-->output:nilnum = 100print(num)-->output:100值得一提的是,OpenResty的Lua接口还提供了一种特殊的空值,即 ngx.nu...原创 2018-08-15 19:41:13 · 200 阅读 · 0 评论 -
Lua资料之openresty基本信息
◆ ngx_openresty两大应用目标: 1.通用目的的web应用服务器。在这个目标下,现有的web应用技术都可以算是和 OpenResty或多或少有些类似,比如Nodejs,PHP等等。ngx_openresty的性能(包括内存使用和CPU效率)算是最大的卖点之一。 2.Nginx的脚本扩展编程,用于构建灵活的Web应用网关和Web应用防火墙。有些类似 的是NetScaler。其优势...原创 2018-08-15 19:03:30 · 181 阅读 · 0 评论 -
Lua资料之标准库
Lua 的库实际上就是包含了函数成员的表,这里表起到了名字空间的作用。◆ 内置标准库:Lua 内置的标准库很小,只提供基本的功能,主要有:base:最核心的函数:package:管理Lua 的模块;string:字符串相关函数,如取子串、格式化、大小写转换等;table:表相关函数,如插入删除元素、排序等;math:数学计算相关函数,如三角函数、平方根等:io:文件相关函数,如打开...原创 2019-05-27 15:53:21 · 486 阅读 · 0 评论