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

如何更好的学习Lua第二篇,基本语法

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

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回
Lua中有八种基本类型:
1、nil (空)
nil 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。nil 类型表示一种没有任何有效值,它只有一个值 – nil,例如打印一个没有赋值的变量,便会输出一个 nil 值:
上代码如图下:

事实证明temp的值为nil
nil也可以用来初始化 local temp = nil,当然你不初始化它也nil 。
2、boolean (布尔)
boolean 类型只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是"假",其他的都为"真":
上代码来验证如图下:

代码验证:
temp是一个没有赋值的变量 值为nil 说以为“假”。
temp2是一个赋值为“hello,world”变量 值不为nil 说以为“真”。
当然如果你将 local temp = false 这样temp肯定也为“假”了。
3、number (数字)
表示双精度类型的实浮点数,Lua 默认只有一种 number 类型 – double(双精度)类型(默认类型可以修改 luaconf.h 里的定义),以下几种写法都被看作是 number 类型:
代码验证:

4、string (字符串)
1)字符串由一对双引号或单引号来表示
代码验证:

这里的字符串连接str3、str4用的是 …
2)也可以用 2 个方括号 “[[]]” 来表示"一块"字符串。
代码验证:

3)在对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字:
代码验证:

5、function(函数)
由 C 或 Lua 编写的函数,在 Lua 中,函数是被看作是"第一类值(First-Class Value)",函数可以存在变量里:
代码验证:

以上代码注释的很清楚了,两个函数执行任何一个输出都是一样的。只是第一个涉及到了“类”和“构造函数”的概念怕新人看不懂所以加了一个下面的add()函数。函数后面还会细讲的
6、userdata (自定义类型)
表示任意存储在变量中的C数据结构
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
7、thread(线程)
表示执行的独立线路,用于执行协同程序
在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
线程这一块上代码验证还不是很好的表达,要涉及到好多代码块。后面我想想办法怎么去更好的讲解这一块。
8、table(表)
Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。
table是lua的经典也是独有的,这一块篇幅是比较大的。我会在下一篇详细的介绍,并附上代码验证,敬请期待!
看完第二篇有的朋友会觉得不对啊,不是应该先讲一下lua的编译器吗。可以去看我之前的文章有介绍过,里面还有详细的打断点加调试等。


如果上面的努力能帮到你或者觉得还可以的话给赞,关注 鼓励!我会继续努力!


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
【转载】Lua中实现类的原理发布时间: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