lua类型与值

八种
nil(空)
boolean(布尔)
number(数字)
string(字符串)
table(表)
function(函数)
userdata(自定义类型)
thread(线程)

nil是一种类型,它只是一个值nil,它的主要功能是用于区别其他任何值,一个全局变量在赋值前的默认值就是nil,讲nil赋予一个全局变量等同于删除他,lua将nil用于表示一个无效值
boolean类型:
true或者false,lua将值falsenil当作“假”,而将除此之外的其他值当作真,注意,数字零和空字符串也被当作“真”
number(数字)
表示实数
string(字符串)
lua中的字符串通常表示一个字符序列
1修改字符串
a="one string"
b=string.gsub(a,"one string","another string")//修改字符串的一部分
print(a)
print(b)

2 lua字符串中的转义序列
\a 响铃
\b 退格
\f 提供表格
\n 换行
\r 回车
\t 水平tab
\v 垂直tab
\\反斜杠
\" 双引号
\‘ 单引号

3 line=io.read()  --读取一行
  n=tonumber(line)  --尝试将它转换为一个数字
  if n==nil then
  error(line.."is not a valid number")
  else 
  print(n*2)
  end

4 数字转换为字符串
print(tostring(10)=="10") -->true
print(10..""=="10") -->true

5 #"长度操作符"获取字符串的长度

table(表)
lua通过table来表示模块,包,和对象
当输入io.read的时候,含义就是“io模块中的read函数”。lua而言,表示“使用字符串”read“作为key来索引table io’
在lua中,table既不是“值”,也不是“变量”,而是“对象”
table的创建是通过“构造表达式完成的”,最简单的构造表达式是{}
a={}  --创建一个table,并将它储存到a中
k="x"
a[k]=10  --新条目,key="x",value=10
a[20]="great" --新条目,key=20,value="great"
print(a["x"])  -->10
k=20
print(a[k]) -->"great"
a["x"]=a["x"]+1 -->递增条目
print(a["x"]) -->11

实例一:
一个持有table的变量与table自身之间没有固定的关联性
a={} -->空的table
a["x"]=10
b=a -->b与a引用了同一个table
print(b["x"]) -->10
b["x"]=20
print(b["x"])  -->20
a=nil  -->现在只有b还在引用table
b=nil  -->再也没有对table的引用了
-->当一个程序再也没有对一个table的引用时,lua的垃圾收集器会删除该table,并服用他的内存

实例二:
a={}
b="t"
a[b]=20  -->将20放入字段“t”
print(a[x])  -->20  
print(a.x)  -->nil
print(a.t)  -->20


-->读取5行内容,并存储到table中
a={}
for i=1,5 do
a[i]=io.read()
end


-->打印所有的行
for i=1,#a do
print(a[i])
end

-->长度操作符在lua中的常见用法
print(a[#a])  -->打印列表a的最后一个值
a[#a]=nil  -->删除最后一个值
a[#a+1]=v  -->将v添加到列表末尾


-->读取前十行
a={}
for i=1,10 do
a[#a+1]=io.read()
end
function(函数)
在lua中,函数是作为“第一类型”来看待的,这表示函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值