Lua语言-入门语法
时间:2022-07-22
本文章向大家介绍Lua语言-入门语法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Lua 程序设计
Lua 是由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于1993年开发的一种轻量、小巧的脚本语言,用标准 C 语言编写,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Redis 在 2.6 版本中推出了脚本功能,允许开发者将 Lua 语言编写的脚本传到 Redis 中执行。使用 Lua 脚本的优点有如下几点:
- 减少网络开销:本来需要多次请求的操作,可以一次请求完成,从而节约网络开销;
- 原子操作:Redis 会将整个脚本作为一个整体执行,中间不会执行其它命令;
- 复用:客户端发送的脚本会存储在 Redis 中,从而实现脚本的复用。
IDE
EmmyLua插件
https://github.com/EmmyLua/IntelliJ-EmmyLua
https://emmylua.github.io/zh_CN/
LDT 基于eclipse
Lua基础语法
参考
hello world
print("hello world!")
保留关键字
and
break
do
else
elseif
end
false
for
function if
in
local
nil
not
or
repeat
return
then
true
until
while
注释
-- 两个减号是行注释
--[[
这是块注释
这是块注释.
--]]
变量
数字类型
Lua的数字只有double型,64bits
你可以以如下的方式表示数字
num = 1024
num = 3.0
num = 3.1416
num = 314.16e-2
num = 0.31416E1
num = 0xff
num = 0x56
字符串
可以用单引号,也可以用双引号
也可以使用转义字符‘n’ (换行), ‘r’ (回车), ‘t’ (横向制表), ‘v’ (纵向制表), ‘’ (反斜杠), ‘”‘ (双引号), 以及 ‘” (单引号)等等
下面的四种方式定义了完全相同的字符串(其中的两个中括号可以用于定义有换行的字符串)
a = 'alon123"'
a = "alon123""
a = '97lo10 4923"'
a = [[alo
123"]]
空值
C语言中的NULL在Lua中是nil,比如你访问一个没有声明过的变量,就是nil
布尔类型
只有nil和false是 false
数字0,‘’空字符串(’ ’)都是true
作用域
lua中的变量如果没有特殊说明,全是全局变量,那怕是语句块或是函数里。
变量前加local关键字的是局部变量。
控制语句
while循环
local i = 0
local max = 10
while i <= max do
print(i)
i = i +1
end
if-else
local function main()
local age = 140
local sex = 'Male'
if age == 40 and sex =="Male" then
print(" 男人四十一枝花 ")
elseif age > 60 and sex ~="Female" then
print("old man without country!")
elseif age < 20 then
io.write("too young, too naive!n")
else
print("Your age is "..age)
end
end
-- 调用
main()
for循环
sum = 0
for i = 100, 1, -2 do
sum = sum + i
end
函数
function myPower(x,y)
return y+x
end
power2 = myPower(2,3)
print(power2)
function newCounter()
local i = 0
return function() -- anonymous function
i = i + 1
return i
end
end
c1 = newCounter()
print(c1()) --> 1
print(c1()) --> 2
print(c1())
返回值
name, age,bGay = "yiming", 37, false, "yimingl@hotmail.com"
print(name,age,bGay)
function isMyGirl(name)
return name == 'xiao6' , name
end
local bol,name = isMyGirl('xiao6')
print(name,bol)
Table
key,value的键值对 类似 map
lucy = {name='xiao6',age=18,height=165.5}
xiao6.age=35
print(xiao6.name,xiao6.age,xiao6.height)
print(xiao6)
数组
arr = {"string", 100, "xiao6",function() print("memeda") return 1 end}
print(arr[4]())
遍历
for k, v in pairs(arr) do
print(k, v)
end
面向对象
成员函数
person = {name='xiao6',age = 18}
function person.eat(food)
print(person.name .." eating "..food)
end
person.eat("xxoo")
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java_List、Set、Conllections工具类
- Oracle参数解析(OPEN_CURSORS)
- java_Collection、Map、泛型的使用
- java_线程、同步、线程池
- Oracle参数解析(nls_timestamp_format)
- Vue使用uuid-npm快速生成uuid,适用于多种场景
- WPF调用图片或资源(Uri)
- Hexo部署远程仓库(Conding、Gitee、Github)
- Linux下安装nginx
- CSS简笔画logo系列:纯CSS绘制“Adidas” Logo
- Electron + Vue跨平台桌面应用开发实战教程(一)
- java_抽象类、接口、多态的使用
- Electron + Vue跨平台桌面应用开发实战教程(二)
- Oracle参数解析(nls_length_semantics)
- 创建单页