Lua语言 备查

开发工具

1.SciTE (入门级)

IDEA lua (商业级)

基础

注释

lua 复制代码
--单行注释
a = "hello"  --a是一个标识符号

--多行注释
--[[这是多行注释]]--

连接符

lua 复制代码
-- ..
str = '123'..'456'

变量

变量类型可以随意改变
数字开头会报错

五种基本变量类型

lua 复制代码
nil --表示空数据

boolean --布尔类型

string --字符串类型(可以双引号,也可可以单引号)

number --小数类型(lua中没有整数类型)

table --表示一个集合,下表序号从1开始

function --有lua编写的函数

userdata --表示任意存储在变量中的C数据类型

thread --表示执行的独立线程

字符串

lua 复制代码
--多行字符串
str = [[
	123
	456
	789
]]

--字符串连接
str = "123"
printf("str = " ..str)

--字符串的转换
printf("2.2" + "30")	--输出 : 32.2

--求字符串长度
printf(#str) 

--字符串与其他类型的转换
str1 = '888'
num = tonumber(str)

--数值转字符串
str = tostring(num) --table类型不能自动转换,需要强制加上tostring(arry)

三大运算符

lua 复制代码
--算术运算符
+ - * / % ^(次幂)

--关系运算符
> >= < <= == ~=(不等于)

--逻辑运算符
and(与) or(或) not(非)
1.false、nil 视为假
2.and 返回第一个为假的操作数(有假为假)
3.or 返回第一个为真的操作数(有真为真)

多重赋值

lua 复制代码
num1,num2,num3 = 1,2,3
print(num1,num2,num3)

全局与局部变量

lua变量默认都是全局的,定义局部变量需要用local来修饰
if 和 for 中定义的变量默认全局
删除一个全局变量,只需要给变量赋值nil

其他

lua 复制代码
str1 = nil --作用:销毁str1所占用得资源

流程控制语句

if

lua 复制代码
--单分支
if() then
end

--双分支
if() then
else
end

--多分支
if() then
elseif () then
else
end

while

lua 复制代码
i = 1
while(i<100) do
	print(i)
	i = i+1
end

repeat

相当于 do-while

lua 复制代码
j = 1

repeat
	print(j)
	j = j+1
until(j>10)

for

lua 复制代码
--单次循环
for i = 1, 10 do
    print("循环次数:"..i)
end

--使用循环步长
for i = 10, 1, -2 do
    print("循环次数"..i)
end

--泛型 for 循环(使用迭代器关键字)
myarry={10,20,30,40,50,60}

for k, v in ipairs(myarry) do
    print(k,v)
end

--定义循环输出具备"键值对"集合的数据,必须使用pairs关键字
myarry2={num1="张三", num2="李四", num3="王五"}

for k, v in pairs(myarry2) do
    print(k,v)
end

函数

1.无需定义返回类型,可以返回任意类型

2.无需定义参数类型

3.可以定义变量,把函数直接赋值给它,从而获得相同的功能

lua 复制代码
--定义一个函数
function funName(num,num2)
    print("我是一个函数,输入参数为:"..num,num2)
    return num + num2
end

--调用函数
ret = funName(100,200)
print("函数返回值为:"..ret)

函数作为参数

lua 复制代码
--回调函数
function fun(ret)
    print("函数输出"..ret)
end

--主调函数
function fun1(num1,num2,fun)
    ret1 = num1-num2
    fun(ret1)
end

--调用
fun1(100,50,fun)

匿名函数

无需定义函数名称,但是要把函数赋值给变量

字符串

字符串表示

lua 复制代码
str = "1234" 
str = '1234'
str = [[1234]]

输出字符串长度

lua 复制代码
..string.len(str)

..#str

转义字符

lua 复制代码
回车 \r
换行 \n
反斜杠 \\
双引号 ""

字符串常用函数

lua 复制代码
str = "fjlsfj23"

--字符串大小写转换
print(string.upper(str))
print(string.lower(str))

--字符串查找
findpos1 = string.find(str, "j")
findpos2 = string.find(str, "j",5) --5表示从下表5开始搜索
print(findpos1)
print(findpos2)

--字符串截取
strSubresult = string.sub("hello world",1,3) --从1开始截取三个字符

--字符串替换
strGsubResult = string.gsub("hello world","l","z") --将l替换成z

--字符串反转
strReverseResult = string.reverse("hello world") --逆序

--格式化字符串
num1,num2,num3 = 10,20,30
num4 = num1 + num2 + num3
strResult = string.format("num1:%d+num2:%d+num3:%d = result:%d",num1,num2,num3,num4)
print(strResult)

是一种数据结构用来创建不容的数据类型

lua数组的下标可以式负数

lua数组的长度可以动态改变

lua 复制代码
--定义一个表
table1 = {11,22,33,44}

--输出
print(table1)
print(table1[1])
print(table1[2])
print(table1[3])

--使用table函数或符号输出
for i=1,table.getn(tableArray) do
	print(tableArray[i])
end

表函数

lua 复制代码
--得到表的长度
table.getn()

--表的链接
table.concat()

--表的插入
table.insert()

--表的删除
table.remove()

表的排序

lua 复制代码
--升序排序
table.sort()

--得到表中最大值
table.maxn()
相关推荐
UWA2 天前
Unreal开发痛点破解!GOT Online新功能:Lua全监控 + LLM内存可视化!
开发语言·lua·unreal
1nullptr2 天前
Lua迭代器与泛型for
lua
半夏知半秋2 天前
skynet debug_console控制台中debug指令使用
服务器·开发语言·学习·lua
h7997102 天前
redis lua脚本(go)调用教程以及debug调试
redis·golang·lua
玩转C语言和数据结构5 天前
Lua下载和安装教程(附安装包)
lua·lua下载·lua安装教程·lua下载和安装教程·lua安装包
Arva .5 天前
HTTP Client
网络协议·http·lua
爱吃小胖橘6 天前
Lua语法(2)
开发语言·unity·lua
ellis19707 天前
LuaC API知识点汇总
unity·lua
爱吃小胖橘9 天前
Lua语法
开发语言·unity·lua
东方芷兰9 天前
JavaWeb 课堂笔记 —— 20 SpringBootWeb案例 配置文件
java·开发语言·笔记·算法·log4j·intellij-idea·lua