2、Lua脚本语言的简单应用
来源:互联网 发布:咕咚跑步软件下载 编辑:程序博客网 时间:2024/05/17 07:48
一、lua是什么?
轻量级、高效的、可扩展的脚本语言,易于嵌套其他语言,在redis2.6之后支持lua嵌入。它虽然不是面向对象语言,但可以做到面向对象。
二、lua的优缺点
1、减少网络开销
2、原子操作(在执行过程中不能参与其他的操作)
3、功能复用
4、编程式操作数据
三、数据类型
数据类型类型介绍
nil表示空,没赋值,有时也可以用来删除数据a=123;删除a a=nilboolean(布尔)true|false
number(数字)表示双精度类型的实浮点数
string(字符串)单引号或者双引号括起来
table(表)lua里面的数组,map和对象,关联数组,索引从1开始{ .....};
table 的索引使用方括号 [];索引可以是字符或数字,表达的意义不一样function(函数)用来封装某个或某些功能可以返回多个值userDate(自定义)用来保存C的API
thread(线程)用来区分独立的线程
nil表示空,没赋值,有时也可以用来删除数据a=123;删除a a=nilboolean(布尔)true|false
number(数字)表示双精度类型的实浮点数
string(字符串)单引号或者双引号括起来
table(表)lua里面的数组,map和对象,关联数组,索引从1开始{ .....};
table 的索引使用方括号 [];索引可以是字符或数字,表达的意义不一样function(函数)用来封装某个或某些功能可以返回多个值userDate(自定义)用来保存C的API
thread(线程)用来区分独立的线程
变量:
分为全局变量和局部变量(local),默认是全局变量,redis只支持局部变量
变量名是以字母、数字和下划线,数字不能开头,严格区分大小写。不能用关键字命名。
关键字:
andbreakdoelseelseifendfalseforfunctionifinlocalnilnotorrepeatreturnthentrueuntilwhile
注释和赋值
- 注释:
单行注释:是以--开头
多行注释:--[[
--]]
2、赋值
单行赋值:local a=123;
多行赋值:local a,b=123,456;
简单语句
打印语句:
print()
return 返回值;输出文件或者函数的返回值
注释和赋值
- 注释:
单行注释:是以--开头
多行注释:--[[
--]]
2、赋值
单行赋值:local a=123;
多行赋值:local a,b=123,456;
简单语句
打印语句:
print()
return 返回值;输出文件或者函数的返回值
操作符:
1、if选择控制语句:
if(布尔表达式)then --[ 布尔表达式为 true 时执行该语句块 --]else --[ 布尔表达式为 false 时执行该语句块 --]end
if(布尔表达式)then --[ 在布尔表达式为 true 时执行的语句 --]end
if( 布尔表达式 1)then --[ 在布尔表达式 1 为 true 时执行该语句块 --]elseif( 布尔表达式 2)then --[ 在布尔表达式 2 为 true 时执行该语句块 --]elseif( 布尔表达式 3)then --[ 在布尔表达式 3 为 true 时执行该语句块 --]else --[ 如果以上布尔表达式都不为 true 则执行该语句块 --]end
Lua认为false和nil为假,true 和非nil为真。要注意的是Lua中 0 为 true。
2、循环结构
2.1while循环
while(condition)do statementsend2.2for循环
2.2.1数值for循环
for var=exp1,exp2[,exp3]do <执行体> end参数介绍:从exp1每隔exp3循环,直到exp2,包含exp1和exp2。有默认步长,如果不指定,步长为1.
2.2.2泛型for循环
for 参数列表 in 迭代器do <执行体>end迭代器:
先介绍下lua提供的两种迭代器:
- pairs():迭代 table,可以遍历表中所有的 key 可以返回 nil
- ipairs():迭代数组,不能返回 nil,如果遇到 nil 则退出
function square(iteratorMaxCount,currentNumber) if currentNumber<iteratorMaxCount then currentNumber = currentNumber+1 return currentNumber, currentNumber*currentNumber endendfor i,n in square,3,0do print(i,n)end
注意:调用迭代器的方式是:迭代器名,传入参数列表(square,3,0)。关于详细的lua迭代器的分类还有一种是用闭包封装:
function elementIterator (collection) local index = 0 local count = #collection -- 闭包函数 return function () index = index + 1 if index <= count then -- 返回迭代器的当前元素 return collection[index] end endendfor element in elementIterator(array)do print(element)end3、repeat...util循环
repeat statementsuntil( condition )执行过程相当于java中的do...while循环
阅读全文
0 0
- 2、Lua脚本语言的简单应用
- 脚本语言的分类和应用(Lua)
- 有关Lua脚本语言应用
- Lua脚本语言最简单入门
- 开发简单的 LUA 应用
- lua脚本语言的学习-----------------lua栈操作
- 脚本语言Lua简单入门学习笔记
- 脚本语言的应用
- 简单的L脚本语言
- Lua脚本语言
- lua脚本语言
- LUA脚本语言
- Lua,一种强大的轻量级脚本语言
- Lua,一种强大的轻量级脚本语言
- SciTE中强大的Lua脚本语言
- 游戏中使用LUA脚本语言的简介
- 游戏中使用LUA脚本语言的简介
- Cocos2d-x 脚本语言Lua的使用
- VC小技巧汇总之对话框技巧
- Linux下挂载新分区
- C语言静态链表的实现
- epoll和select的区别
- memcache分布式 [一致性hash算法] 的php实现
- 2、Lua脚本语言的简单应用
- 【服务器】ubuntu下搭建owncloud网盘
- Linux 静态库与动态库搜索路径设置
- overview_java(七)-collection迭代
- 【DDD】领域驱动设计实践 —— 限界上下文识别
- 比特股钱包模式和账号模式的安全性差异
- C++面试题(六).吉比特
- HDU1495 非常可乐(bfs/数论(不过数论的我不会))
- 【RNN】理解 LSTM 网络