Lua用法简述

本章内容来自于《Redis开发与运维》书本中

1.数据类型及其逻辑处理

Lua语言提供了如下几种数据类型:booleans(布尔)、numbers(数值)、strings(字符串)、tables(表格),和许多高级语言相比,相对简单。下面将结合例子对Lua的基本数据类型和逻辑处理进行说明。

(1)字符串

下面定义一个字符串类型的数据:

local strings val = "world"

其中,local代表val是一个局部变量,如果没有local代表是全局变量。print函数可以打印出变量的值,例如下面代码将打印world,其中"–"是Lua语言的注释。

-- 结果是
"world"
print(hello)

(2)数组

在Lua中,如果要使用类似数组的功能,可以用tables类型,下面代码使用定义了一个tables类型的变量myArray,但和大多数编程语言不同的是,Lua的数组下标从1开始计算:

local tables myArray = {"redis", "jedis", true, 88.0}
--true
print(myArray[3])

如果想遍历这个数组,可以使用for和while,这些关键字和许多编程语言是一致的。

(a)for

下面代码会计算1到100的和,关键字for以end作为结束符:

local int sum = 0
for i = 1, 100
do
	sum = sum + i
end
-- 输出结果为
5050
print(sum)

要遍历myArray,首先需要知道tables的长度,只需要在变量前加一个#号即可:

for i = 1, #myArray
do
	print(myArray[i])
end

除此之外,Lua还提供了内置函数ipairs,使用for index,value in ipairs(tables)可以遍历出所有的索引下标和值:

for index,value in ipairs(myArray)
do
	print(index)
	print(value)
end

(b)while

下面代码同样会计算1到100的和,只不过使用的是while循环,while循环同样以end作为结束符。

local int sum = 0
local int i = 0
while i <= 100
do
	sum = sum +i
	i = i + 1
end
--输出结果为
5050
print(sum)

(c)if else

要确定数组中是否包含了jedis,有则打印true,注意if以end结尾,if后紧跟then:

local tables myArray = {"redis", "jedis", true, 88.0}
for i = 1, #myArray
do
	if myArray[i] == "jedis"
	then
		print("true")
	break
	else
		--do nothing
	end
end

(3)哈希

如果要使用类似哈希的功能,同样可以使用tables类型,例如下面代码定义了一个tables,每个元素包含了key和value,其中strings1…string2是将两个字符串进行连接:

local tables user_1 = {age = 28, name = "tome"}
--user_1 age is 28
print("user_1 age is " .. user_1["age"])

如果要遍历user_1,可以使用Lua的内置函数pairs:

for key,value in pairs(user_1)
do print(key .. value)
end

2.函数定义

在Lua中,函数以function开头,以end结尾,funcName是函数名,中间部分是函数体:

function funcName()
...
end
contact函数将两个字符串拼接:
function contact(str1, str2)
	return str1 .. str2
end
--"hello world"
print(contact("hello ", "world"))

注意

本章只是介绍了Lua部分功能,可以购买相应的书籍或者到Lua的官方网站(http://www.lua.org/ )进行学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值