Redis基础知识(学习笔记21--Lua 脚本语言)

打印 上一主题 下一主题

主题 1736|帖子 1736|积分 5208

1 Lua 简介

Lua 是一个由尺度C语言开发的、开源的、可扩展的、轻量级的、弱类型的、解释型脚本语言,是于1993年由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)的三人研究小组使用尺度C语言开发
官网:https://www.lua.org/

 2 安装

留意 源码安装时,需要先安装gcc-c++
  1. yum - y install gcc-c++
复制代码
 安装过程不在赘述
安装后,可以通过以下命令查询程序路径
  1. whereis lua
复制代码
3 语法基础

3.1 注释

Lua的行注释为两个一连的减号,段注释以--[[ 开头,以--]] 结束。
3.2 数据类型

Lua 中有8种类型,分布为:nil、boolean、number、string、userdata、function、thread 和 table。通过type()函数可以查看一个数据的类型。
数据类型描述
nil只有值nil属于该类,表示一个无效值,与Java中的null类似。但在条件表达式中相当于false。
boolean包罗两个值:false和true。
number表示双精度类型的实浮点数。
string字符串,由一对双引号或单引号括起来。当一个字符串包罗多行时,可以在第一行中以 [[ 开头,在最后一行中以  ]]  末端,那么在 [[ 与 ]] 括起来的这多行内容就是一个字符串。换行符为字符串“\n”。
table类似于Java中的数组,但比数组的功能更强大,更灵活。
function由 C 或 Lua 编写的函数
thread协同线程,是协同函数的执行体,即正在执行的协同函数。
userdata一种用户自定义函数,用于表示一种由应用函数或C/C++语言库所创建的类型,可以将任意C/C++的任意数据类型的数据存储到Lua变量中调用。
3.3 标识符

标识符主要包罗保存字、变量、常量、方法名、函数名、类名等。Lua的标识符由字母、数字与下划线组成,但不能以数字开头。Lua是大小写敏感的。
(1)保存字
Lua常见的保存字共有22个。不过,除了这22个外,Lua中还定义了很多的内置全局变量,这些内置全局变量的一个共同特征是,以下划线开头后跟全是大写字母。以是,我们在定义自己的标识符时不能与这些保存字、内置全局变量重复。
andbreakdoelse
elseifendfalsefor
functionifinlocal
nilnotorrepeat
returnthentrueuntil
whilegoto  
(2)变量
Lua是弱类型语言,变量不需类型声明即可直接使用。变量分为全局变量和局部变量。Lua中的变量默认都是全局变量,即使声明在语句块或函数里。全局变量一旦声明,在当前文件中的任何地方都可以访问。局部变量local相当于Java中的private变量,只能在声明的语句块中使用。
(3)动态类型
Lua是动态类型语言,变量的类型可以随时改变,无需声明。
3.4 运算符

运算符是一种特殊的符号,用于告诉解释器执行特定的数学或者逻辑运算。Lua提供了以下几种运算符类型。
(1)算数运算符
设定A的值为10,B的值为20.
操作符描述实例
+加法A+B 输出效果 30
-减法A-B 输出效果 -10
*乘法A*B 输出效果 200
/除法5/2 输出效果 2.5 
%取余B%A 输出效果 0
^乘幂A^2 输出效果 100
-负号-A 输出效果是 -10
//整除运算符(>=lua 5.3)5//2 输出效果 2
留意:
在 整除运算符 时,例如 5//2,大概会报错:
  1. lua: a.lua: XXX : unexpected symbol near '/'  ---XXX 代表行号
复制代码
报错缘故原由时版本的问题。需要 >=lua 5.3。
 (2)关系运算符
设定A的值为10,B的值为20.
[table][tr][td]操作符[/td][td]描述[/td][td]示例[/td][/tr][tr][td]==[/td][td]等于[/td][td](A==B)为false[/td][/tr][tr][td]~=[/td][td]不等于[/td][td] (A~=B) 为true[/td][/tr][tr][td]>[/td][td]大于[/td][td](A>B)为false[/td][/tr][tr][td]</tdtd小于/tdtd(AB)为true/td/trtrtd=/tdtd大于等于/tdtd(A>=B)为false[/td][/tr][tr][td]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表