【Lua】数据类型

记录学习过程

创建日期:2019-04-14

数据类型

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

使用type函数返回数据类型

print(type(“Hello World”))  --string
print(type(print))         --function

nil

print(type(a))  

boolean(布尔)

print(type(true))  --boolean

number(数字)

print(type(2))
print(type(2.2))
print(2e+2) -- 2*102次方

string(字符串)

str = “haha”

可以用”[[ ]]”表示多行字符串(类似C#的@” ”)

strs=
[[
str1
str2
]]

字符串拼接

print("2".."4")  --24

也可以

print(2 .."4")  --24 (注意第一个字符串后面要空格)

运算

print("2"+"4") -- 6 字符串转成number进行加法运算
print("a"+2) --报错,a 无法转成number

print(2+4) -- 2+4

用#来计算字符串的长度

print(#"Hello") --5
print(#"哈哈") --4 中文的字符都占2个字节
strs=
[[
dd
]]
print(#strs) --3 可知空格也占用一个字节  

table(表)
表的值可以为任意类型

tab1={}--空表

tab2 = {key1 = 100,key2 = "Value2"}
key3 = "key3"
tab2[key3]="Value3"--添加表数据
key4 = "key4"
tab2[key4]="Value4"

print(tab2["key1"])--通过key访问表数据
print(tab2[key3])--访问表数据
print(tab2.key3)

tab3={"a","d","c"}
print(tab3[1])--通过索引访问表数据,table的索引从1开始

print("table遍历")

if tab3 ~= nil then --如果table 为nil,遍历table是会出错
	for key,val in pairs(tab3) do
		print(key.. ":"..val)
	end
end
--1:a
--2:d
--3:c

--pairs与ipairs的区别
--pairs的遍历是随机的,但是一定会遍历整个表,先访问索引值,再访问哈希值
--ipairs遍历从1开始,索引断开或下个索引不存在遍历都会终止

function(函数)
函数的定义和使用

function fact(n)--数的阶乘,递归
	if n==1 then
		return n
	else
		return n*fact(n-1)
	end
end

fact2= fact
print(fact2(5)) --120
print(type(fact))

function作为参数传递和匿名函数

tab = {key1="value1",key2="value2"}

function ergodicFun(tab,fun)--遍历
	for k,v in pairs(tab) do
	fun(k,v)
	end
end

function printKV(k,v)
	print(k..":"..v)
end

ergodicFun(tab,printKV)--function作为参数

ergodicFun(tab,
function(k,v) --匿名函数,函数只使用一次
	print(k..":"..v)
end
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值