在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Lua语言是在993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式程序移植到其他应用程序, 它们由C语言实现的,虽然简单小巧但是功能强大,所以许多应用都选用它做脚本语言, 尤其是在游戏领域,例如大名鼎鼎的暴雪公司将Lua语言引入到“魔兽世界”这款游戏中, Rovio公司将Lua语言作为“愤怒的小鸟”这款火爆游戏的关卡升级引擎,web服务软件将Nginx将Lua语言作为扩展,增强自身功能。 Redis将Lua作为脚本语言可帮助开发者定制自己的Redis命令,在这之前,必须修改源码。 一、Lua的安装及部署 curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz tar zxf lua-5.3.4.tar.gz cd lua-5.3.4 make linux test make install 在make linux test时报错: make[2]: *** [lua.o] 错误 1 make[2]: 离开目录“/root/lua-5.3.4/src” make[1]: *** [linux] 错误 2 make[1]: 离开目录“/root/lua-5.3.4/src” make: *** [linux] 错误 2 这个是缺少readline-devel这个包。
二、数据类型及其逻辑处理 Lua语言提供了如下几种数据类型:booleans(布尔)、numbers(数值)、strings(字符串)、tables(表格), 和许多高级语言相比,相对简单。下面将结合例子对Lua的基本数据类型和逻辑处理进行说明。 1.字符串 下面定义一个字符串类型的数据: > local string val = "world" > print(val) world 其中,local代表val是一个局部变量,如果没有local代表是全局变量,print函数可以打印数量的值。
2.数组 在Lua中,如果要使用类似数组的功能,可以用tables类型,下面代码使用定义了一个tables类型的变量myArray, 但和大多数编程语言不同的是,Lua的数组下标从1开始计算: > local tables myArray = {'redis','jedis',true,88.0} > print(myArray[3]) true 如果想遍历这个数组,可以使用for和whlie,这些关键字和许多编程语言是一致的。 (1)for 下面代码会计算1到100的和,关键字for以end作为结束符。 #!/usr/local/bin/lua local int sum = 0 for i =1,100 do sum = sum + i end print(sum) 执行结果: [root@Redis script.lua]# lua 1.lua 5050 要遍历myArray,首先要知道tables的长度,只需要在变量前加一个#号即可: > for i = 1,#myArray >> do >> print(myArray[i]) >> end redis jedis true 88.0 除此之外,Lua还提供了内置函数ipairs,使用for index,value ipairs(tables)可以遍历出所有的索引下标和值: > for index,value in ipairs(myArray) >> do >> print(index) >> print(value) >> end 1 redis 2 jedis 3 true 4 88.0
(2)while 下面代码同样会计算1到100的和,只不过使用的是while循环,while循环同样以end作为结束符。 #/uar/local/bin/lua local int sum = 0 local int i = 0 while i <= 100 do sum = sum + i i = i + 1 end print(sum) #执行结果: [root@Redis script.lua]# lua 2.lua 5050
(3)if else 要确定数字中书否包含了jedis,有则打印true,注意if以end结尾,if后紧跟then: #!/usr/local/bin/lua 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 #执行结果 [root@Redis script.lua]# lua 3.lua true 3.哈希 如果使用类似哈希的功能,同样可以使用tables类型,例如下面代码定义了一个tables, 每个元素包含了key和value,其中strings1 ..strings2是将两个字符串进行连接: local tables user_1 = (age = 28, name = "kebi") --user_1 age is 25 print("user_1 age is " ... user_1["age"]) 如果要遍历user_1,可以使用Lua的内置函数pairs: for key,value in pairs(user_1) do print(key .. value) end
4.函数定义 在Lua中,函数以function开头,以end结尾,中间部分是函数体。 #!/usr/local/bin/lua function contact(str1,str2) return str1 .. str2 end print(contact("hello","world")) 执行结果: [root@Redis script.lua]# lua 5.lua helloworld
|
请发表评论