Lua----注意事项
前言:Lua相对一般的语言相对简单,有c基础看一遍就差不多了。一般的代码都能够看懂。但是Lua也有一些自己的特点,区别与其他语言,这里需要注意一下。
1.数组下标
在Lua中数组下标是从1开始计数的。
在初始化一个数组的时候,若不显示的使用键值对的方式赋值,则会默认用数字作为下标,从1开始。如:
local color={first="red", "blue", third="green", "yellow"}
print(color["first"]) --> output: red
print(color[1]) --> output: blue --没有显示的使用键值对的方式赋值,这里会默认用数字作为下标,从1开始
print(color["third"]) --> output: green
print(color[2]) --> output: yellow
print(color[3]) --> output: nil
2.局部表变量
Lua中的局部变量要用local关键字来显示定义,不用local显示定义的变量就是全局变量。
局部变量有作用域,这个和C语言类似
模块中应尽量不要出现全局变量
3.判断数组的大小
注意!!一定不要使用#操作符来计算包含nil的数组长度
4.非空判断
1)对于简单类型的变量,可以用:
if (var == nil) then
2)对于table类型的变量,可以用:
if t == nil or _G.next(t) == nil then
5.函数在调用代码前定义
Lua里面的函数必须放在调用的代码之前,下面的代码是一个常见的错误:
local i = 100
i = add_one(i)
local function add_one(i)
return i + 1
end
6.抵制使用module()函数来定义Lua模块
Lua----注意事项的更多相关文章
- Cocos2d-X之LUA注意事项
「使用计时器」: 计时器函数原型:unsigned int scheduleScriptFunc(unsigned int handler, float interval, bool paused) ...
- lua、python对比学习
一.基本数据类型: lua: nil(空).boolean(false和nil为假).number(数值).string(字符串).table(表).function(方法).thread (线程) ...
- lua的table表处理 及注意事项
lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的: 下面是大牛 云风的一片关于lua table的blog,可使得对lua ta ...
- lua通过bunlde读注意事项
把lua脚本做成bundle,加载字符串,变成lua对象: lua loadstring("name")() 注意:loadstring的问题: 无法访问全局local变量,需要改 ...
- Lua 数组排序 table.sort的注意事项
1. table中不能有nil table.sort是排序函数,它要求要排序的目标table的必须是从1到n连续的,即中间不能有nil. 2. 重写的比较函数,两个值相等时不能return true ...
- lua 1 基本语法和注意事项
笔记总结自: http://www.runoob.com/lua/lua-data-types.html 基本数据类型: 数据类型 描述 nil 这个最简单,只有值nil属于该类,表示一个无效值(在条 ...
- cocos2d-x注意事项(十)Lua发展飞机战争-4-创建主角
二战中被称为二战飞机飞机,当然,以飞机作业.这是一个游戏,我们必须加入一个飞机--这是我们的英雄. 首先创建一个层(PlaneLayer)要显示飞机.然后,create飞机初始化方法 module(& ...
- 轻量级Lua IDE ZeroBrane Studio 的使用技巧和汉化
快捷键 : alt + shift +鼠标 ,可以块选中文本. F12 折叠/展开 所有 F5 调试运行 点击第二次 将跳转到第一个断点处 F10 单步执行 shift +F10 单步执行,不进入函数 ...
- C程序与Lua脚本相互调用
Lua脚本是一种可用于C程序开发/测试的工具,本篇介绍一下C程序与Lua脚本如何进行相互调用,更加详细的操作参见<Programing in Lua>.本文分为3个部分:1.Windows ...
- cocos2d-x lua与c++简单交互
cocos2d-x lua与c++简单交互 version: cocos2d-x 3.6 本文讲述lua与c++的一些简单交互: lua通过消息方式调用c++无参接口 c++调用lua带参接口 1.通 ...
随机推荐
- 【规律】【贪心】【数学】HDU 5573 Binary Tree
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5573 题目大意: 从1走到第k层,下一层的数是上一层的数*2或者*2+1,可以选择加上或者减去走的数 ...
- DBParameter比拼接字符串慢的解决办法
List<DBParameter> param = new List<DBParameter>(){ new DBParameter("@Question ...
- MaterialEditText
https://github.com/rengwuxian/MaterialEditText http://www.rengwuxian.com/post/materialedittext
- Android Monkey具体解释
Monkey是一个执行在Android设备或者虚拟机上的程序,它能随机模拟一系列用户的操作.点击,滑动,能够用它来做压力測试. 在Monkey执行的过程中,它会产生并发送一系列的事件给系统,而且监听系 ...
- Ternary Search Tree Java实现
/** * @author Edwin Chen * */ //定义节点 class Node { //存储字符串 char storeChar; //是否完成单词 boolean isComplet ...
- yii cgridview 默认的筛选如何做成选择框
效果图 参照 http://www.yiiframework.com/doc/api/1.1/CGridColumn http://www.yiiframework.com/doc/api/1.1/C ...
- exploit writing tutorial 阅读笔记总结
近日阅读Corelan Team编写的exploit writing tutorial系列,大致了解了一下原理,记了一些笔记.此系列文章有中文翻译版,在看雪论坛上发表. 英文版地址:https://w ...
- SpringMVC06以对象的方式获取前台的数据
========创建需要的两个实体类================ public class School { private String sName; private String addres ...
- php单例模式深入讲解
避免多次初始化数据库连接DAO 需要多次初始化数据库连接的场景 场景1: 首先PHP单例模式我觉得只是针对单次页面级请求时出现多个应用场景并需要共享同一对象资源时是非常有意义的 一个类A需要调用多个类 ...
- sqlserver中的统计语法
set statisitcs io {on | off} 显示与执行的sql语句有关的磁盘活动量的信息 set statistics profile {on | off} 显示语句的配置文件信息 se ...