LUA: lua基础.
2019独角兽企业重金招聘Python工程师标准>>>
nil :它是一个类型且只有一个值nil.它的主要功能是区别于其他任何值.如果对一个全局变量赋值nil等同于删除它.
条件测试中: LUA把 零值(0) 和 空字符串("") 当为true.
Lua版本unpack():
function unpack(theTable, index)
index = index or 1;
if theTable[index] then
return theTable[index], unpack(theTable, index+1);
end;
end;
Lua版本iterator:
function iterator(theTable)
local i = 0;
return function()
i = i+1;
return theTable[i] end;
end;tb = {10, 20, 30};
iter = iterator(tb);
while true do
local element = iter();
if element == nil then
break;
end;
print(element);
end;output:
10
20
30
Lua范围for与iterator:
tb= {10, 20, 30};function iterator(theTable)
local i = 0;
return function()
i = i + 1;
return theTable[i];
end;
end;for value in iterator(tb) do
print(value);
end;
Lua版本具有复杂状态的iterator:
local iterator;function allWords()
local state= {line = io.read(), pos = 1};
return iterator, state;
end;function iterator(state)
while state.line do
local s, e = string.find(state.line, "%w+", state.pos);
if s then
state.pos = e + 1;
return string.sub(state.line, s, e);
else
state.line = io.read();
state.pos = 1;
end;
end;
return nil;
end;local itr, sta = allWords();
print(itr(sta));
Lua版本协程:
function receive(prod) --接受数据.
local status, value = coroutine.resume(prod);
return value;
end;function send(x) --发送数据.
coroutine.yield(x);
end;function producer() --生产者
return coroutine.create(function()
while true dolocal x = io.read();send(x);endend)endfunction filter(prod) --过滤
return coroutine.create(function() --创建一个协程for line = 1, math.huge dolocal x = receive(prod);x = string.format("%5d %s", line, x);send(x);endend)endfunction consumer(prod)
while true do
local x = receive(prod)
io.write(x, "\n");
end
end
Lua版本协程iterator:
function permgen(array, size)
size = size or #array;
if size <= 1 thencoroutine.yield(array);elsefor i=1, size do
array[size], array[i] = array[i],array[size];
permgen(array, size-1);
array[size], array[i] = array[i],array[size];
end
end
endfunction printResult(array)
for index, value in ipairs(array) do
io.write(array[index], " ");
end
io.write("\n");
endfunction permutations(array)
local co = coroutine.create(function() permgen(array) end)
return function()
local code, result = coroutine.resume(co);
return result;
end
endfor value in permutations({1, 2, 3}) do
printResult(value);
end
转载于:https://my.oschina.net/SHIHUAMarryMe/blog/873420
LUA: lua基础.相关推荐
- [Lua语言编程]Lua语言基础知识
文章目录 `Lua` `Lua`语言的起源 `Lua` 特性 `Lua下载` Linux 系统上安装 Mac OS X 系统上安装 Window 系统上安装 `Lua` `Lua`语言语法 `Lua` ...
- Lua语言基础入门 (Lua学习一)
Lua语言快速入门 这篇博客主要是简单的讲解一下Lua的基础知识,涉及的东西不是很深,提供一些学习的思路,对具体的技术不展开介绍,网上资料很多写的都比我好,仅仅为了使用Lua,而不是做基于Lua的项目 ...
- Lua === Lua 十分钟基础入门上手
Lua维基百科 Lua的目标是成为一个很容易嵌入到其他语言中使用的语言: 很多程序员使用Lua作为自己的嵌入式脚本语言,实现可配置性,可扩展性: 轻量级语言,体积小速度启动快,只包含一个精简的核心和基 ...
- Lua语法基础(1)---简介、基本数据类型、表达式
我觉得我已经陷入了一个坑内.因为,安装了Lua和SublimeText3编辑器之后,怎么使自己编写的lua代码在untiy内运行起来,是个我完全不了解的机制.先放一放吧.首先,来回顾一下Lua的语法基 ...
- JavaScript、Lua语言基础、电脑脚本、手机免ROOT免越狱脚本开发免费视频教程
JavaScript基础教程:https://www.bilibili.com/video/BV1YW411T7GX Lua基础教程:https://www.bilibili.com/video/BV ...
- 【Lua编程基础】实测Lua中点和冒号的区别
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 Lua中成员函数的定义应该约定一种形式而不要点和冒号同时使用 一:在lua中面向对象编程的时候都要用冒号 使用冒号声明函数的时 ...
- 【Lua 入门基础篇(七)】表模块与包
文章目录 一.table表 1. 表的构造 2. 表的操作 (1) concat(连接) (2) insert(插入) (3) remove(移除) (4) sort(排序) (5) maxn(最大值 ...
- 【Lua编程基础】Lua编程SciTe和SublimeI的配置和使用
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 1.SciTe配置lua环境 运行前设置Language/lua F5运行lua文件的时候会提示找不到指定文件就需要进行如下配 ...
- Lua 面向对象基础-类和对象(一)
目录 1. lua中创建对象 2.lua中定义类的思路 3.元表的概念 4.类的定义和实例化 5. 重写类的方法 lua是一门面向过程的脚本语言,lua语言对于事物.结构通通描述为 table,而类和 ...
最新文章
- HarmonyOS UI开发 StackLayout(堆栈布局) 的使用
- Wake-On-LAN待机或休眠模式中唤醒
- CSS3绘制圆角矩形的简单示例
- 面向对象 面向你(二)
- MySQL 计算两个时间的差值
- “一切即代码”究竟意味着什么?
- next主题设定代码高亮格式
- Oracle 数字与空值的排序问题
- 【GCC调试程序C语言问题】对‘ceil’未定义的引用/已经包含头文件仍然提示未定义的引用
- 小米笔记本怎么进入pe系统?
- windows认证密码抓取
- VRRP在城域网中的应用
- java根据ip地址获取详细地域信息
- react 调用webIm
- Mybatis 框架CRUD的操作 案例
- 2022年大数据技能大赛国赛(模块A,B)
- 亚马逊广告api v2版php扩展库
- 【Sprint3冲刺之前】敏捷团队绩效考核(刘铸辉)
- 计算机cds,CDS
- ROS自定义msg类型及使用
热门文章
- IOS - IPhone或IPAD,如何恢复出厂操作系统?
- MySQL-库的操作
- CPU,MPU,MCU,SOC,SOPC联系与差别
- 关于localStorage和sessionStorage存储用法的一些细节说明----------localStorage和sessionStorage存储必须字符串化...
- Docker入门(CentOS7)
- 我的Java设计模式-原型模式
- Python__模拟实现一个ATM+购物商城程序
- Excel VBA(宏):添加宏
- 配置hibernate根据实体类自动建表功能
- UML学习-活动图创建