redis学习(八) Lua语法

Lua语法

数据类型

Lua是一个动态类型语言,一个变量可以存储任何类型的值。编写redis脚本会用到的类型

Lua常用数据类型
类型名 取值
空(nil) 空类型只包含一个值,即nil。nil表示空,所有没有赋值的变量或表的字段都是nil
布尔(boolean) 布尔类型包含true和false
数字(number) 整数和浮点数都是使用数字类型存储,如1、0.23、3.5e20等
字符串(string) 字符串类型可以存储字符串,且与redis的键值一样都是二进制安全的。字符串可以使用单引号或双引号表示,两个符号是相同的,比如'a'和"a",字符串中可以包含转义字符,如\n,\r等
表(table) 表类型是Lua语言中唯一的数据结构,既可以当数组有可以当字典,十分灵活
函数(function) 函数在Lua中是一等值(first-class-value),可以存储在变量中、作为函数的参数或返回结果

变量

Lua的变量分为全局变量和局部变量。全局变量无需声明就可以直接使用,默认为nil

a=1 --为全局变量赋值
print(b) --无需声明即可使用,默认是nil
a = nil --删除全局变量a的方法是将其赋值为nil。全局变量没有声明和未声明之分,只有非nil和nil区别

在redis脚本中不能使用全局变量,只允许使用局部变量以防止脚本之间的相互影响,声明局部变量的方法为local变量名

local c --声明一个局部变量c,默认值是nil
local d =1 --声明局部变量并赋值1
local e,f --同时声明多个局部变量

变量名必须是非数字开头,只能包含字母、数字和下划线,区分大小写。变量名不能和Lua的保留关键字相同,保留关键字如下:

and break do else elseif
end false for function if 
in local nil not or
repeat return then true until while

局部变量的作用域为从声明开始到所在层的语句块末尾,比如

local x =10
if true then 
local x = x+1 
print(x)
do
local x = x+1
print(x)
end 
print(x)
end 
print(x)

依次输出:

11 12 11 10

注释

单行注释以--开始,到行尾结束,一般习惯在--后面跟上一个空格

多行注释以--[[开始,到]]结束

赋值

Lua支持多重赋值,比如:

local a,b = 1,2 

local c,d = 1,2,2 -- c的值是1,d的值是2,3被舍弃了

local e,f = 1 -- e的值是1,f的值是nil

在执行多重赋值是,lua会先计算所有表达式的值,比如

local a

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值