LUA----简单数据类型

本文详细讲解了Lua语言的基本概念,包括单行和多行注释的使用,不同类型变量的定义及其自动类型判断,字符串操作、算术运算、条件语句、循环结构以及函数的定义与调用。涵盖了条件分支、循环、函数的实例和类型说明,是初学者理解Lua语法的重要指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注释

--单行注释
--lua语句可以省略分号

print("你好世界")
print("你好世界")
--[[
多行
注释
]]

变量

print("*******变量*********")

--nil number string boolean
--lua中所有的变量不需要指定类型,会自动判断

--type返回值是string
--nil 空
a=nil
print(a)
print(type(a))
--number 所有的数值都是number
a=1
print(a)
print(type(a))
a=1.2
print(a)
print(type(a))

--lua里没有char,只有string
a="123123"
print(a)
print(type(a))
a='123123'
print(a)
print(type(a))

a=true
print(a)
a=false
print(a)

字符串

print("********字符串长度******")
--一个汉字3长度
s="abcdefg字符串"
print(#s)

print("********字符串多行打印******")
print("1233\n123")

s=[[我是
猪
八戒]]
print(s)


print("********字符串拼接******")
print("123".."456")
print(string.format("我今年%d岁",18))



print("********别的类型转字符串******")
a=true
print(tostring(a))


print("********字符串提供的方法******")
str="abcDEF"
--不会改变原字符串
print(string.upper(str))
print(str)
print(string.lower(str))

--翻转
print(string.reverse(str))
--索引查找,LUA中从1开始
print(string.find(str,"DEF"))

--截取字符串
print(string.sub(str,3))
print(string.sub(str,3,4))
--字符串修改
print(string.gsub(str,"DE","**"))

--字符串转ASCII码
a=string.byte("Lua",1)
print(a)
--ASCII码转字符串
print(string.char(a))

运算符

--LUA没有的:++,--,+=,-=,*=等
--字符串进行算数运算会转number
print("123"+1)

print("幂运算"..2^5)

--LUA中的不等于是:~=
--LUA的逻辑运算符:and or  not
print(true and false)
print(not true)

条件分支语句

print("********条件分支语句******")
--if 条件 then......end
a=9
if a>5 then
	print("123")
end

--多分支
if a<5 then
	print("123")
elseif a==6 then
	print("a=6")
else
	print("321")
end

循环

num=0

--while 条件 do..... end
while num<5 do
	print(num)
	num=num+1
end

--repeat语句
num=0
repeat
	print(num)
	num=num+1
until num>5	

--for循环
for i=1,5 do  --默认i会+1
	print(i)
end


for i=1,5,2 do  --如果要自定义增量,直接逗号后面写
	print(i)
end

for i=5,1,-1 do  --如果要自定义增量,直接逗号后面写
	print(i)
end


函数

print("********函数******")
--funtion 函数名()
--end
--a = funtion()
--end

print("********无参无返回值******")
function F1()
	print("F1函数")
end
F1() --必须在声明函数后才能调用

F2 = function()
	print("F1函数")
end
F2()




print("********有参数******")
--啥都能传
function F3(a)
	print(a)
end
F3(1)
F3("123")
F3(true)
--如果传入的个数不匹配,补nil或者丢弃多的
F3()
F3(1,2,3)



print("********有返回值******")
function F4(a)
	return a,"123",true --可以多返回值,能一一对应就行,不然多的就舍弃
end
temp1,temp2,temp3 = F4(1)
print(temp1)
print(temp2)
print(temp3)


print("********函数的类型******")
F5 = function()
	print("123")
end
print(type(F5))




print("********函数的重载******")
--LUA中不支持重载
function F6()
	print("123123")
end

function F6(str)
	print(str)
end

F6()






print("********变长函数******")

--变长参数用表存起来
function F7( ... )
	arg = {...}
	for i=1,#arg do
		print(arg[i])
	end
end
F7(1,"123",3,4,5,6,7)


print("********函数嵌套******")
function F8(  )
	return function ()
		print(213)
	end	
end
f9=F8()
f9()

--LUA中闭包的体现
function F9( x )
	--改变传入参数的生命周期
	return function ( y )
		return x+y
	end
end

f10=F9(10)  --本来函数执行完10就没用了,现在10作为x被暂存
print(f10(5)) --x被使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值