【lua】lua八大数据类型/lua变量

–八大数据类型
nil boolean number string table function thread userdata
  
nil:空类型:没有一种任何的有效值 null
– 对于全局变量和 table,nil 还有一个"删除"作用,给全局变量或者 table 表里的变量赋一个 nil 值,等同于把它们删掉
 
bool:true false / nil 和 false 为假,其他为真
 
number(数字) float 和 double
 
string :字符串
– 是由一对双引号或者单引号定义的
– 也可以用 2 个方括号 “[[]]” 来表示"一块"字符串。
print(“2” + 8) – 10 lua会把数字字符转为数字
print(“2” + “6”)-- 8
–print(“error”+1)–报错 error1 rror 1 字符串拼接用 . .(两个点)
print(“error”. .1) – error1
–字符串长度 #str
len = “www.baidu.com”
print(#len)
 
table :lua里面唯一的数据结构 list+哈希 {}
–table默认的索引是从1开始的
–lua的table是不会固定大小,有新数据添加的时候会自动扩容,没有初始化的table都是nil
–任意类型的值来做为数组的索引,但是这个值不能是nil
 
function函数
function 函数名(参数列表)函数体 返回值 end
–函数:对语句和表达式进行抽象的主要方法
–用途:
  1.完成指定任务
  2.计算返回值
–function function_name( … )
   body
–end

–把函数做为参数传递给函数
myprint = function (param)
 print(“打印函数”,param)
end
function add(num1,num2,functionPrint)
 result =num1+num2
 functionPrint(result)
end
add(2,5,myprint)

–多返回值,在return后列出要返回的值的列表即可返回多值

–可变参数:可变数目的参数
function add( … )
  local sum =0
  for i,v in ipairs{…} do
   sum=sum+v
  end
  return sum
end
print(add(3,4,5,6,7))
–将可变参数赋值给一个变量 如tab ={…}
–需要固定参数加上可变参数,固定参数必须在变长参数前
function fwrite( fmt,… )
 return io.write(string.format(fmt,…))
end
fwrite(“baidu.com\n”)
fwrite("%d%d\n",1,2)–12
 
thread(线程)
–在lua里面,最主要的线程是协同程序,它和线程是差不多的,有自己独立的栈,局部变量,指令指针,可以和其他协同程序共享全局变量和其他部分东西
–线程和协程的区别:线程可以同时运行多个,协程任意时刻只能运行一个,并且处于运行状态的协程只有在被挂起(suspend)的时候才会暂停
 
userdata :自定义类型 通常存的是struct和指针
–userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
 
lua变量
–变量在使用前需要进行声明,即为创建该变量
–lua变量的三种类型:全局变量,局部变量(local),表中的域
Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。
–使用局部变量的好处:
 1.避免命名冲突
 2.访问局部变量的速度比全局变量更快
function test()
  c=4
  local d =6
end
test()
print(c,d) --4 nil

a =5
local b=3
do
  local a =6
  b =6
  print(a,b)–6 6
end
print(a,b)–5 6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值