1.chunk是可以把Lua识别并执行的代码。
chunk可以是单条语句,也可以是一系列语句的组合,还可以是函数,或是一个代码文件,
交互模式下的每条指令(一行或多行)都是一个chunk
交互模式下,判断指令是否结束是看输入的字符是否以;结尾。

2.Lua -i 要求Lua运行指定chunk后进入交互模式
-e 直接将命令传人Lua
-l 加载一个文件(与doFile require的区别?)

3.如果要删除一个全局变量,只需要讲变量赋值为nil即可

4.全局变量arg存放Lua的命令行参数??

5.nil的类型就是nil, nil类型的值只有nil一种

6.Lua的numbers 可以处理任何长整数不用担心误差
也可以在编译Lua 的时候使用长整型或者单精度浮点型代替numbers,在一些平台硬件不支持浮点数的情况下这个特性是非常有用的

7.Lua 中所有的值都可以作为条件。在控制结构的条件中除了false 和nil 为假,其他值都为真。所以Lua 认为0 和空串都是真

8.还可以在字符串中使用\ddd(ddd 为三位十进制数字)方式表示字母。 最长也就是3位。
"alo\n123\""和'\97lo\10\04923"'是相同的,所以Lua会把\049解析成一个字母,而不是把\0492解析成一个字母。

9.string和int的自动转换
下面写法中,注释掉的代码的写法是错误的
print (22+"44");
print ("22"+44);
print ("22"+"44");

print ("22"..44);
print(22 .. 44);
print (22 .."44");
--print (22.."44");
--print(22..44);
即是,想要int通过..转换成string的时候,需要在int和..运算符之间留一个空格

10.可以通过tonumber把string显示的转换成int,如果不成功则返回nil
反之,可以通过tostring把int转换成string
tonumber("10");
tostring(10);

11.如果两个值类型不同,则两者不同。nil只和自己相等

12.算术运算符的操作数都是实数

13.not的结果只返回true或者flase
a and b -- 如果a 为false,则返回a,否则返回b
a or b -- 如果a 为true,则返回a,否则返回b

14.在构造函数中域分隔符逗号(",")可以用分号(";")替代,通常我们使用分号用来分割不同类型的表元素
{x=10, y=45; "one", "two", "three"}
在构造函数的最后的","是可选的,可以方便以后的扩展
a = {[1]="red", [2]="green", [3]="blue",}

15.遇到赋值语句,Lua会先计算右边表达式的值然后在进行赋值操作。
同样,在数据for语句中,for的三个表达式也只会被计算一次,并且是在循环开始前。
数据for的控制变量默认声明为局部变量,只在for循环体内有效,
数据for循环体内不要改变控制变量的值,那样做的结果是未知的。如果要退出循环,使用break
数据for的三个表达式之间用,分隔
范型for 和数值for 有两点相同:
1)控制变量是局部变量
2)不要修改控制变量的值

16.table的遍历
t={x=10, y=45; "one", "two", "three"}
for k in pairs(t) do print(k, type(k)) end
print("------");
for i,v in ipairs(t) do print(v, type(i), type(v)) end
上面代码输出:
1 number
2 number
3 number
y string
x string
------
one number string
two number string
three number string
即是,用i,v遍历,只能遍历出key-value但对于系统自动补充的下标不能遍历出。
但是key遍历的话,就可以遍历出所有的key

16.break和return
Lua 语法要求break 和return 只能出现在block 的结尾一句(也就是说:作为chunk的最后一句,或者在end 之前,或者else 前,或者until 前),例如:
local i = 1
while a[i] do
if a[i] == v then break end
i = i + 1
end
有时候为了调试或者其他目的需要在block 的中间使用return 或者break,可以显式的使用do..end 来实现:
function foo ()
return --<< SYNTAX ERROR
-- 'return' is the last statement in the next block
do return end -- OK
... -- statements not reached
end

Lua学习笔记(1)的更多相关文章

  1. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  2. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  3. Lua学习笔记6:C++和Lua的相互调用

        曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有.     新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...

  4. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  5. (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境

    Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...

  6. Lua学习笔记:面向对象

    Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...

  7. Lua学习笔记(二):基本语法

    Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...

  8. Lua学习笔记一

    学习了有一周多了.之前一直不想献丑,但还是记录下这个过程. 第1章  开发软件搭建 1. ubuntu 下lua安装 sudo apt-get install lua5.1 2.win下的环境搭建. ...

  9. lua学习笔记

    工作需要,上周对lua赶进度似地学习了一遍,主要参考<lua中文教程>一书,中间参考一些<lua游戏开发实践>,首先说说这两本书,后者不适合初学,里面是对一个游戏脚本系统进行粗 ...

  10. 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】

    Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...

随机推荐

  1. 【转】Linux 下取进程占用 cpu/内存 最高的前10个进程

    # Linux 下 取进程占用 cpu 最高的前10个进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存 ...

  2. Python面试题之Python正则表达式指南

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  3. CSS3 文本常用属性

    CSS 常用属性 text-shadow属性文字阴影:第一个值背景相对原本文字居左的距离,第二个值据当前文本上方的距离,第三个值清晰度(越小越清晰),第四个值颜色 word-wrap:自动换行,如果是 ...

  4. MYSQL提权的各种姿势

    一.利用mof提权 前段时间Kingcope大牛发布了mysql远程提权0day,剑心牛对MOF利用进行了分析,如下: Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的 ...

  5. 迁移cnblog博客

    title: 迁移cnblog博客 date: 2018-03-18 categories: cnblogs tags: life 写博客最怕就是这种迁来迁去的,太麻烦了 还好老早就使用markdow ...

  6. 【P3355】骑士共存问题(最大流+黑白染色,洛谷)

    这个题刚看上去就让人不禁想到一道叫做方格取数问题的题目,事实上也就是这么做,对棋盘黑白染色,然后黑格子连源点,白的连汇点,点权为1.然后判断一下黑格子能影响到的白格子,边权为inf,跑一遍最大流就可以 ...

  7. 判断iframe页面是否是顶层页面

    if (self!=top) {  window.parent.location.reload();}

  8. Binder机制-简单用法(一)

    Binder算是android里面比较难懂的部分了,但是非常重要,基本上,当我们深入到进程交互的阶段,Binder都是一个绕不开的槛,所以我也希望帮助大家更浅显地了解到这个知识点.笔者想通过3篇博文简 ...

  9. C语言之非常简单的几道题

    C语言之非常简单的几道题(还是写写),比较简单吧,主要有几道题的数据类型(如,第三题)和语句顺序(如,第二题)需要注意一小下下. 1. 求表达式S=1*2*3……*N的值大于150时,最小的N的值 / ...

  10. WildcardMatching和Regex,通配符匹配和正则表达式匹配

    WildcardMatching:通配符匹配 算法分析: 1. 二个指针i, j分别指向字符串.匹配公式. 2. 如果匹配,直接2个指针一起前进. 3. 如果匹配公式是*,在字符串中依次匹配即可. 注 ...