文档章节

Lua学习笔记(一)

坐着游戏的火箭
 坐着游戏的火箭
发布于 2016/08/03 23:56
字数 632
阅读 24
收藏 0

这是我的第一篇正式博文,献给Lua。

接触Lua是因为我们的项目要使用Cocos2dx-lua引擎。初探Lua,感觉和C语言有些类似,这是一个脚本语言,功能强大,非常适合做游戏开发。有C语言的基础,学起来难度应该不算大。

Lua语言的语句是不需要分隔符做结尾的,如果都写在一行,最好能添加分号,便于理解。在Lua中,注释使用两个横线“--”,注释块使用“--[[”为头,“]]”为尾。

注释的技巧:结尾使用“--]]”,这样启用这块代码,只需在开头加横线即可。举例:

--[[
a=1
b=2
--]]

这块代码将两个变量都注释了,如果需要启用它们,只需改成:

---[[
a=1
b=2
--]]

这样首尾两行均被注释,代码可以使用了,下次想再次注释就删掉一个横线,不必做无用功。

Lua标识符可以是数字,字母和下划线,但是不能以数字开头。Lua有一个和null类似的东西,叫做nil,所有未初始化的变量,print出来就是nil,表示“空”。若要删除全局变量,只需赋值nil即可。

关于类型,Lua中使用了一个非常强大的东西——table,它是Lua的灵魂所在。学好table是很重要的。table是一种对象,可以动态添加内容,没有固定大小,通过构造表达式来创建,比如“{}”:tbl={},则tbl为lua的table。如果table中的变量没有初始化,则打印出来的就是nil。table报矿两个部分组成:key和value,可以key=value的形式不断添加成员。存储和读取的时候有多种方法,我们来看例子:

tbl = {}
tbl["x"] = 1
tbl.y = 5
tbl[6] = z

--现在,我们的tbl构成为:tbl={x=1,y=5,6=z},索引key在等号左边,值value在等号右边

print(tbl.x, tbl["y"], tbl[6])

--输出1  5  z

应该注意的是,和C不同,Lua用table表示的数组通常以1为起始索引,table操作:table.maxn(tbl)可以返回tbl的最大正索引数。

此外,Lua的函数部分也是重点,function在lua中也是极为灵活的。这一块在后续笔记中详细总结。下一次,我们将继续讨论Lua的语法部分,学习操作符和语句。

© 著作权归作者所有

下一篇: 新人报道
坐着游戏的火箭
粉丝 3
博文 25
码字总数 16651
作品 0
成都
程序员
私信 提问
加载中

评论(3)

fzyz_sb
fzyz_sb

引用来自“hqc17”的评论

引用来自“fzyz_sb”的评论

字典在任何一门语言都是语言的核心构造部分。

字典是什么

就是你那里的table结构,以key/value作为存储的。
坐着游戏的火箭
坐着游戏的火箭

引用来自“fzyz_sb”的评论

字典在任何一门语言都是语言的核心构造部分。

字典是什么
fzyz_sb
fzyz_sb
字典在任何一门语言都是语言的核心构造部分。
NodeMCU学习笔记之初始化工作

NodeMCU学习笔记之初始化工作 丛林听雨2016-11-04132 阅读 工作初始化 NodeMCU是一个开源的可以运行脚本的微控制器,直接支持WiFi链接和GPIO,而且成本低廉。是物联网开发的不二之选。板子是...

丛林听雨
2016/11/04
0
0
生产环境上nginx 不覆盖添加lua模块

需求如下: 需要在nginx配置文件中判断请求中是否带某参数变量,nginx配置本身没有此判断功能。 网上查找资料,可以在nginx中添加lua模块,使用lua的脚本去判断。比较靠谱的文章:CentOS系统...

-悟空-
2015/06/11
0
2
Lua学习笔记

注: 标题中带“Cocos”的为Lua结合Cocos的文章。 【基础模块】 Lua(1) ——Cocos之Code IDE入门指南 Lua(2) ——基础语法 Lua(3) ——Cocos之语法糖class Lua(4) ——基本库函数 Lua(5) ——...

shahdza
2015/10/08
0
0
lua开发笔记

因为最近的项目需要,学习了lua编程,并使用lua进行网络相关的开发,在此记录一下用到的相关的知识。 在整个项目中,我只是负责其中的固件升级模块的开发,数据格式是自定义的,并没有采用J...

kaedehao
2015/08/30
569
0
程序猿成长计划--growing-up

程序猿成长计划 程序员成长计划包含了作为一名程序猿成长过程中的所学,我把这些以教程的形式开源出来,供大家一起学习、补充,共同成长。 三十分钟学会AWK Docker学习笔记-基础命令 一小时学...

mylxsw
2016/11/30
704
0

没有更多内容

加载失败,请刷新页面

加载更多

G1 垃圾收集器介绍-转

https://www.cnblogs.com/ASPNET2008/p/6496481.html

Java搬砖工程师
35分钟前
1
0
超高性能 key-value 数据库 Redis-基础数据结构

Redis的魅力 缓存大致可以分为两类:1.一种是应用内缓存,比如Map(简单的数据结构),以及EH Cache(Java第三方库);2.另一种 就是缓存组件,比如Memached,Redis;Redis(remote dictiona...

须臾之余
45分钟前
3
0
Mysql表分区的选择与实践小结

在一些系统中有时某张表会出现百万或者千万的数据量,尽管其中使用了索引,查询速度也不一定会很快。这时候可能就需要通过分库,分表,分区来解决这些性能瓶颈。 一. 选择合适的解决方法 1....

小谜弟
52分钟前
3
0
为 git 添加多个公秘钥

如果想为主机配置多个git设置,设置多个git公、秘钥,只需在生成密钥时指定密钥保持的文件即可,保证保存密钥的文件不同即可。 示例: ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" -f...

niithub
52分钟前
2
0
walle-web 2.0安装流水

一、环境安装 VMware Workstation,centos7.6 64位,lnmp1.5 二、安装lnmp1.5 wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1......

我心中有猛狗
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部