
Lua
JasonLiu1919
微信公众号《小窗幽记机器学习》。却顾所来径,苍苍横翠微。个人微信号:onepieceand
展开
-
Lua学习笔记
代码:-- Exercise 3.4: Can you write a function from the previous-- item so that it uses at most n additions and n multiplications-- (and no exponentiations)?-- coefficients are stored in a Lua arr原创 2016-01-27 10:37:09 · 554 阅读 · 0 评论 -
Lua学习笔记-table转为字符串
1、将table中的成员进行连接,使其成为一个字符串,可以采用table.concat()方法。 例如: a = {1,’a’,’b’,4} print(table.concat(a)) 打印出的结果是1ab4。 如果是print(table.concat(a,’,’))则打印的结果是1,a,b,4 2、将字符串转table 代码:t={}str="text"str:gsub(".原创 2016-07-19 09:28:34 · 15883 阅读 · 0 评论 -
Lua学习笔记-文件读写
背景:采用Lua进行文件读和写操作,最终简单模拟文件的复制操作。第一大类:IO表调用方式1、简单读写模式:io.input([file]) 设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为把柄,有了把柄就可以找到文件),返回文件句柄。读操作。io.output([file]) 设置默认的输出文件,写操作时候用。io.close([file]) 关闭文件,不带参数关闭原创 2016-07-06 20:04:01 · 1250 阅读 · 0 评论 -
Lua学习笔记-数据结构
1、数组使用整数来索引table即可在Lua中实现数组。因此,Lua中的数组没有固定的大小。注意,其索引是从1开始的,这与C++不同。代码:squares = {1, 4, 9, 16, 25};len=#squares;for i=1,len do print("ayyr:"..i..":"..squares[i]);endprint("length"..#squar原创 2016-01-23 17:05:28 · 587 阅读 · 0 评论 -
Lua学习笔记-习题5.4
题目:函数实现打印出输入矩阵内所有元素的组合。(tips:可以通过递归的方式实现组合,C(n,m)=C(n-1,m-1)+C(n-1,m))。 将该问题进行分解: 1)求数组中由1到n个元素的组合f(n,m) (m>=1 && m<=n;n为数组元素个数); 2)对于f(n,m),从数组中任意取一个元素,然后再从剩下的n-1个元素中取m-1个元素,既f(n-1,m-1); 3)重复第2步,直原创 2016-04-08 18:23:14 · 1882 阅读 · 0 评论 -
Lua学习笔记-习题9.3
题目:Implement a transfer function in Lua. If you think about resume-yield as similar to call-return, a transfer would be like a goto: it suspends the running coroutine and resumes any other coroutine, g原创 2016-04-07 18:33:09 · 1050 阅读 · 0 评论 -
Lua学习笔记-9.4章-非抢占式的多线程
1、coroutine运行一系列的协作多线程。每个coroutine相当于一个thread。通过yield-resume实现在不同thread之间切换控制权。但是,跟常规的multithr不同,coroutine是非抢占式的。一个coroutine在运行的时候,不可能被其他的coroutine从外部将其挂起,只有由其本身显式地调用yield才会挂起,并交出控制权。对一些程序来说,这没有任何问题,相原创 2016-04-07 17:38:00 · 3636 阅读 · 0 评论 -
Lua学习笔记-9.2章-管道和过滤器
1、producer-consumer问题couroutine的一个典型的例子就是producer-consumer问题。假设有这样两个函数,一个不停的produce一些值出来(例如从一个file中不停地读),另一个不断地consume这些值(例如,写入到另一个file中)。这两个函数的样子应该如下:function producer () while true do local原创 2016-02-17 16:18:19 · 1389 阅读 · 0 评论 -
Lua学习笔记-9.1章-协同程序
1、什么是协同程序 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,但是和其他协同程序共享全局变量等很多信息。 线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时原创 2016-02-17 14:58:36 · 538 阅读 · 0 评论 -
Lua学习笔记-第四章
1、下面的圆括弧是否是需要的?(x and y and (not z)) or ((not y) and x)根据优先级,我们知道not 最大,and次之,or最小x and y and not z or not y and x,该表达式也是先进行not z和not y操作,随后其结果与最近的and进行操作。所以,括弧是可以去掉的。2、关于赋值x = 10 --globa原创 2016-01-30 18:21:39 · 1247 阅读 · 0 评论 -
Lua学习笔记-判断是否是布尔型
1、如何在在不使用type函数的前提下判断是否是布尔型代码如下:-- Exercise 3.5: How can you check whether a value is boolean-- without using the type function?-- check if a variable is a boolean-- comparisons are false if t原创 2016-01-30 10:43:53 · 15371 阅读 · 0 评论 -
Lua学习笔记-string库的使用
1、Lua 字符串库中的所有函数都导出在模块 string 中。在 Lua 5.1 中,它还将这些函数导出作为 string 类型的方法。这样假设要返回一个字符串转的大写形式,可以写成 ans = string.upper(s) ,也能写成 ans = s:upper()。为了避免与之前版本不兼容,建议使用前者。Lua 字符串总是由字节构成的。Lua 核心并不尝试理解具体的字符集编码(比如 GBK转载 2016-03-01 15:23:27 · 2893 阅读 · 0 评论 -
Lua学习笔记-迭代器和泛型for
使用迭代器例子:--list迭代器,返回list中function values( t ) local i = 0; local n = table.getn(t)--table中元素个数 --print(n)--打印出表中元素的个数 return function() i = i + 1 return t[i] endendtb = {11,22,3原创 2016-02-15 14:22:57 · 735 阅读 · 0 评论 -
Lua中如何防止sql注入
背景:假设我们在用户登录使用上 SQL 语句查询账号是否账号密码正确,用户可以通过 GET 方式请求并发送登录信息比如:http://localhost/login?name=person&password=12345那么我们上面的代码通过 ngx.var.arg_name 和 ngx.var.arg_password获取查询参数,并且与 SQL 语句格式进行字符串拼接,最终 sql语句会是这个样子原创 2017-11-17 11:34:30 · 3472 阅读 · 0 评论