• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua基础学习(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

设计目的:

为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
 
特性:
1.编译之后仅仅100k,可以很方便嵌入别的程序里。
2.可扩张性,Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
Lua 应用场景
  • 游戏开发
  • 独立应用脚本
  • Web 应用脚本
  • 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
  • 安全系统,如入侵检测系统

标示符

Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。
最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。 Lua 是一个区分大小写的编程语言。因此在 Lua 中 Runoob 与 runoob 是两个不同的标示符
 

注释:

单行注释 --
多行注释 --[[ 多行注释 多行注释 --]]
取消多行注释 在前面加一个-
 
 

lua的数据类型

1.nil 只有值nio属于这类,表示一个无效值。相当于条件表达式false,nil有一个删除的作用,通过给变量赋值为nil,等用于把这个变量删除。nil与被type()函数转换的值做比较的是否需加上"" 如 x = nil type(x)=="nil",因为type(X) == String
2.Boolean 包含两个值true/false
3.number 表示双精度类型的实浮点数。如: 1,2.2等
4.字符串由一对双引号或单引号来表示,也可以用[[]]来表示,执行字符串计算时,lua尝试将这个数字字符串转成一个数字,不能转换将报错。字符串连接用.. 如 print("123".."456"),用#计算字符串的长度,如 print(#("abc"))
5.function 由C或lua编写的函数,函数给赋给变量 如: function a{} b = a; 可以匿名的方式传递如: function testFun(tab,fun)     for k ,v in pairs(tab) do         print(fun(k,v));     end end tab={key1="val1",key2="val2"}; testFun(tab, function(key,val)--匿名函数     return key.."="..val; end );
6.userdata表示任意存储在变量中的C数据结构。userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
7.thread 表示执行的独立线程,用于执行协同程序。在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
8.table lua的表其实是一个关联数组,数据的索引可能是字符串或者是数字,在lua里,table的创建是通过"构建表达式"来完成,最简单的构造表达式是{},用来创建一个空表。
如果不指定,默认的key 从1开始。如:
local tbl = {"apple", "pear", "orange", "grape"} for key, val in pairs(tbl) do print("Key", key) end
脚本执行结果为: Key    1 Key    2 Key    3 Key    4
对 table 的索引使用方括号 []。Lua 也提供了 . 操作。
t[i] t.i 如: tab{a="abc"} tab.a -- 当索引为字符串类型时的一种简化写法
 
 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Cocos-2dx-Lua 编译android安装包问题发布时间:2022-07-22
下一篇:
Lua学习之类型与值发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap