第1章:起点

Chunks: 语句块

每个语句结尾的分号是可选的,如果同一行有多个语句最好使用分号分隔;

dofile("lib1.lua")  -- 执行lua文件

全局变量:局部变量用local修饰,否则就是全局变量

保留字:

if then else elseif end

and or not

fuction return end

true false nil

while ... do .. end    break

repeat ... until ...

for ... in ... do ... end

local

注释:单行 --

多行 --[[ XXX  --]]

命令行: lua [option] [script [args]]

-e: 直接传入命令,如:lua -e "print(math.sin(12))"

-l: 加载文件,如:lua -la -lb,执行a.lua和b.lua文件

-i: 交互模式,

第2章 类型和值

8个基本类型: nil\boolean\number\string\userdata\function\thread\table

通过type()获取类型

转义字符: \[  \]

第3章 表达式

算术运算符

二元运算符: + - * / ^ (加减乘除幂)

一元运算符: -

关系运算符

<  >  <=  >=  ==  ~=

nil只和自己相等

逻辑运算符

and or not

a ? b : c

连接运算符

..    -> string

{}   => days = {"sunday", "monday"}

days[1]  索引从1开始!!!

a = {x=0, y=1}   <=>  a={}; a.x=0; a.y=1  <=>  {["x"]=0, ["y"]=1}

{"red", "green", "blue"}    <=>  {[1]="red", [2]="green", [3]="blue"}

不推荐数组下标从0开始,否则很多标准库不能使用

第4章 基本语法

赋值语句:  x,y = y,x

Lua总是会将等号右边的个数调整到与左边的个数一致。若不够,以nil填充,若有多,则丢弃。

do ... end   <=>  C++的{}

循环语句:

while condition do

statements

end

repeat

statements

until conditions;

for var=exp1, exp2, exp3 do  --注意:exp1,exp2,exp3只会计算一次!!!

loop-part

end

for i,v in ipairs(a) do print(v) end

break和return语句用于跳出当前块。

break和return只能是一个块的最后一条语句。(程序块或end、else、until前的一条语句)

可以通过do return end来规避

第5章 函数

调用函数的时候,如果参数列表为空,必须使用()表明是函数调用,当函数只有一个参数并且这个参数是字符串或者表构造的时候,()可有可无。

Lua函数实参和形参的匹配与赋值语句类似,多余部分被忽略,缺少部分用nil补足

特殊函数unpack,数组作为参数返回数组的每个元素

可变参数:  func(...)

Lua将函数的可变参数放在一个叫arg的表中,除了参数以外,arg表中还有一个域n表示参数的个数

哑元变量:  _

local _, x = string.find(s, p)

命名参数,具名实参:

rename{old="temp.lua", new="temp1.lua"}

当实参只有一个table构造式时,函数调用的括号是可有可无的。

Lua编程入门-学习笔记1的更多相关文章

  1. Lua编程入门-学习笔记2

    第6章 深入函数 函数是一种“第一类值(First-Class Value)”,他们具有特定的词法域(lexical scoping) 将表达式“function(x) <body> en ...

  2. opencv3 编程入门学习笔记(一): 基本函数介绍

    滤波 blur (均值滤波) 均值滤波是典型的线性滤波算法, 主要方法为领域平均法(即用一片图像区域的各个像素的平均值来代替原图像中的各个像素值) 缺点: 不能很好的保护图像细节, 在图像去噪的同时也 ...

  3. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  4. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

  5. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  6. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  7. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  8. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  9. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

随机推荐

  1. textView富文本点击事件

    NSDictionary * attDic = [NSDictionary dictionaryWithObjectsAndKeys:RGBCOLOR(31, 132, 204),NSForegrou ...

  2. ios变量的property属性设置和意义

    IOS 的@property和@synthesize帮我们轻易的生成对象的getter和setter方法来完成对对象的赋值和访问.但是如果我们如果要动态设置对象的getter和setter方法可以使用 ...

  3. Emacs入门快捷键

    打开emacs开始一个程序最基本操作: 1.打开Emacs,执行 $ emacs 2.建立一个新的程序文件. 按C-x C-f 然后在屏幕的底部出现minibuffer,光标提示你输入文件名称, 文件 ...

  4. [android]android开发中的运行错误之:adb.exe

    调试的时候出现一下错误: The connection to adb is down, and a servera error has occured.You must restart adb and ...

  5. (原+转)error C2872: “ACCESS_MASK”: 不明确的符号 C:\Program Files (x86)\Windows Kits\8.1\Include\um\ktmw32.h 125

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5500795.html 参考网址: http://www.lxway.com/88515256.htm ...

  6. 当nginx 500 伪静态错误时,记录解决方法rewrite or internal redirection cycle while processing

    错误日志::rewrite or internal redirection cycle while processing "/index.php/index.php/index.php/in ...

  7. [Head First Python]5. 推导数据:处理数据

    读取4个文件内容,格式化数据,升序,显示每个文件前3个数据 julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21 james.txt 2-34, ...

  8. linux io优化

    场景:xml文件解析入库:并备份 问题:磁盘io异常,经常100%busy: linux io优化方法: 1.修改磁盘挂着参数,修改为writeback模式:对于文件读取频繁的可以设置noatime: ...

  9. Equations(hdu 1496 二分查找+各种剪枝)

    Equations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  10. nodejs 如何使用upgrade,并且C/B 发送消息

    1 const http = require('http'); const querystring = require("querystring"); var postData = ...