前言: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----注意事项的更多相关文章

  1. Cocos2d-X之LUA注意事项

    「使用计时器」: 计时器函数原型:unsigned int scheduleScriptFunc(unsigned int handler, float interval, bool paused) ...

  2. lua、python对比学习

    一.基本数据类型: lua:  nil(空).boolean(false和nil为假).number(数值).string(字符串).table(表).function(方法).thread (线程) ...

  3. lua的table表处理 及注意事项

    lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的: 下面是大牛 云风的一片关于lua table的blog,可使得对lua ta ...

  4. lua通过bunlde读注意事项

    把lua脚本做成bundle,加载字符串,变成lua对象: lua loadstring("name")() 注意:loadstring的问题: 无法访问全局local变量,需要改 ...

  5. Lua 数组排序 table.sort的注意事项

    1. table中不能有nil table.sort是排序函数,它要求要排序的目标table的必须是从1到n连续的,即中间不能有nil. 2. 重写的比较函数,两个值相等时不能return true ...

  6. lua 1 基本语法和注意事项

    笔记总结自: http://www.runoob.com/lua/lua-data-types.html 基本数据类型: 数据类型 描述 nil 这个最简单,只有值nil属于该类,表示一个无效值(在条 ...

  7. cocos2d-x注意事项(十)Lua发展飞机战争-4-创建主角

    二战中被称为二战飞机飞机,当然,以飞机作业.这是一个游戏,我们必须加入一个飞机--这是我们的英雄. 首先创建一个层(PlaneLayer)要显示飞机.然后,create飞机初始化方法 module(& ...

  8. 轻量级Lua IDE ZeroBrane Studio 的使用技巧和汉化

    快捷键 : alt + shift +鼠标 ,可以块选中文本. F12 折叠/展开 所有 F5 调试运行 点击第二次 将跳转到第一个断点处 F10 单步执行 shift +F10 单步执行,不进入函数 ...

  9. C程序与Lua脚本相互调用

    Lua脚本是一种可用于C程序开发/测试的工具,本篇介绍一下C程序与Lua脚本如何进行相互调用,更加详细的操作参见<Programing in Lua>.本文分为3个部分:1.Windows ...

  10. cocos2d-x lua与c++简单交互

    cocos2d-x lua与c++简单交互 version: cocos2d-x 3.6 本文讲述lua与c++的一些简单交互: lua通过消息方式调用c++无参接口 c++调用lua带参接口 1.通 ...

随机推荐

  1. visual studio 调试grunt

    原文地址: https://yoavniran.wordpress.com/2015/06/25/debug-grunt-tasks-in-visual-studio-2015/

  2. H - Prince and Princess - HDU 4685(二分匹配+强连通分量)

    题意:有N个王子M个公主,王子喜欢一些公主,而且只能是王子喜欢的人,他们才可以结婚,现在让他们尽可能多的结婚的前提下找出来每个王子都可以和谁结婚. 分析:先求出来他们的最大匹配,因为给的数据未必是完备 ...

  3. JQuery Mobile页面的载入方式

    1.JQM页面结构 jQuery Mobile是通过data-role属性来区分渲染界面样式的,JQM里面提供的data-role如下表: 参数 说明 page 页面容器,其内部的mobile元素将会 ...

  4. Something broke! (Error 500)——reviewboard

    Something broke! (Error 500) 1.什么时候会出现? 不清楚,出现过几次 2.解决手段及方法: 更改/www_rb/conf/settings_local.py文件,将DEB ...

  5. linux内核--自旋锁的理解

    http://blog.chinaunix.net/uid-20543672-id-3252604.html 自旋锁:如果内核配置为SMP系统,自旋锁就按SMP系统上的要求来实现真正的自旋等待,但是对 ...

  6. asp.net using library ClosedXML to export excel

    Reference:  http://closedxml.codeplex.com/ 1. First add refenrence ClosedXML.dll and DocumentFormat. ...

  7. RMAN-00554: initialization of internal recovery manager package failed RMAN-04005

    [oracle@rac11g1 ~]$ rman target haha/haha@rac11g Recovery Manager: Release 11.2.0.3.0 - Production o ...

  8. win7 vs2010 安装cocos2d-x

    http://blog.csdn.net/leoncoder/article/details/12523727 新安装搭建cocos2d-X的跳过这里,看以下红色開始: cocos2d-x删除vs20 ...

  9. Linux与JVM的内存关系分析

    引言 在一些物理内存为8g的server上,主要执行一个Java服务,系统内存分配例如以下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m. 从表面 ...

  10. Robotium API -- 等待执行的方法sleep、waitFor

    测试中经常出现明明有控件或者文本,但是由于界面没有载入完成或者其他原因导致assert判断的结果失败.或者两次执行,一次成功,一次失败的情况.所以需要加入这些等待某些控件或者文本载入的方法,以加强程序 ...