Lua数据类型入门

数字

数字类型表示实数(双精度浮点)数字。Lua 没有整数类型,因为它不需要它。对浮点算术误差存在普遍的误解,有些人担心,即使是简单的增量,浮点数字也可能会变得怪异。事实是,当您使用双精度值表示整数时,没有任何舍入错误(除非数字大于 100,000,000,000,000,000)。具体地说,Lua 数字可以表示任何长整数,而不会出现舍入问题。此外,大多数现代 CPU 的浮点算术速度与整数算术一样快(甚至更快)

数字只有一种类型,就是默认双精度!

print(type(2))  --number
print(type(2.2))  --number
print(type(0.2))  --number
print(type(2e+1))   --number
print(type(0.2e-1))  --number
print(type(7.8263692594256e-06)) ----number

字符串

字符串具有通常的含义:一系列字符。Lua 是八位干净,因此字符串可能包含具有任何数值的字符,包括嵌入的零。这意味着您可以将任何二进制数据存储到字符串中。Lua 中的字符串是不可变值。不能像在 C 中那样更改字符串中的字符;因此,在 C 中可以更改字符串中的字符。相反,使用所需的修改创建新字符串

单引号,双引号,[[]] 都可以把字符串装起来

s1="apple"
s2=' hello'
s3=[[ I am happy]]
print(s1..s2..s3) --apple hello I am happy

函数

函数是Lua中的一等公民。 这意味着函数可以存储在变量中,作为参数传递给其他函数,并作为结果返回。 这样的功能为语言提供了极大的灵活性:当运行一段不受信任的代码(例如通过网络接收的代码)时,程序可以重新定义功能以添加新功能,或者简单地擦除功能以创建安全的环境。 而且,Lua为函数式编程提供了良好的支持,包括具有适当词法作用域的嵌套函数.

Lua可以调用用Lua编写的函数和用C编写的函数。Lua中的所有标准库都是用C编写的。它包括用于字符串操作,表操作,I / O,访问基本操作系统功能,数学函数和调试的函数。

function factorial(n)
    if n==0 then
        return 1
    else
        return n*factorial(n-1)
    end
end

print(factorial(6)) --720
x=factorial(6)
print(x) --720

table

在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。也可以在表里添加一些数据

需要注意的是下标从1开始

local tb1={} --定义一个空的table
local tb2={"apple","pear","orange","grape"}  --定义一个含有值得table
for k, v in ipairs(tb2) do   --table有一个类似索引的东西
    print(k.." "..v)
end

结果

1 apple
2 pear
3 orange
4 grape
a3={} --创建空table
for i = 1, 10 do
    a3[i]=i
end
--不能直接打印table
print(a3) --table: 00000000000994b0
print(a3[2]) --2 利用索引获取table元素
print(#a3) --10 table长度

a3["test"]=99
print(a3["test"]) --99
print(a3[test]) --nil

table其实也可以充当其他语言中map的作用

t={key1="value1",key2=value2}
print(t.key1) --这种写法方便点
print(t["key1"]) --这种写法需要加双引号
t.key3="value3"
print(t.key3) --value3
print(#t)

奇怪的# 键值对形式的不算长度

t1={"apple","bana"}
print(#t1) --2
t2={key1="apple",key2="bana"}
print(#t2) --0
t3={key1="apple",key2="bana","luobo"}
print(#t3) --1 

布尔类型

true
false

总结

  • 除了table比较奇怪,其他还是可以接受的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值