Lua编程入门-学习笔记1
第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的更多相关文章
- Lua编程入门-学习笔记2
第6章 深入函数 函数是一种“第一类值(First-Class Value)”,他们具有特定的词法域(lexical scoping) 将表达式“function(x) <body> en ...
- opencv3 编程入门学习笔记(一): 基本函数介绍
滤波 blur (均值滤波) 均值滤波是典型的线性滤波算法, 主要方法为领域平均法(即用一片图像区域的各个像素的平均值来代替原图像中的各个像素值) 缺点: 不能很好的保护图像细节, 在图像去噪的同时也 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part1
随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...
- OpenCV入门学习笔记
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...
- 汇编入门学习笔记 (十二)—— int指令、port
疯狂的暑假学习之 汇编入门学习笔记 (十二)-- int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
随机推荐
- 安装SQL2008时遇到"未能加载文件或"file:///d:microsoft..sql.chainer.packagedata.dll"或它的某个依赖项
安装SQL2008时遇到"未能加载文件或"file:///d:microsoft..sql.chainer.packagedata.dll"或它的某个依赖项,如下图所示 ...
- MFC之树控件
树控件对应的类: CTreeControl 树控件属性设置: 启用复选框:Check Boxes = True 父节点显示+-按钮:Has Button = True ; Lines At Roots ...
- 学习javascript中this用法的一些感悟
要想真正的掌握this,应该先要掌握javascript代码执行上下文环境的创建.转换和销毁机制:
- python运维开发(二十四)----crm权限管理系统
内容目录: 数据库设计 easyUI的使用 数据库设计 权限表Perssion 角色表Role 权限和角色关系表RoleToPermission 用户表UserInfo 用户和角色关系表UserInf ...
- 小希的迷宫(HDU 1272 并查集判断生成树)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Delphi中的异常处理(10种异常来源、处理、精确处理)
一.异常的来源 在Delphi应用程序中,下列的情况都比较有可能产生异常. 1.文件处理 2.内存分配 3.windows资源 4.运行时创建对象和窗体 5.硬件和操作系统冲突 6.网络问题 7.数据 ...
- C# Process类_进程_应用程序域与上下文之间的关系
进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他 ...
- C# Environment类_获取程序所在机器信息
一.属性 CommandLine 获取该进程的命令行.CurrentDirectory 获取或设置当前工作目录的完全限定路径.ExitCode 获取或设置进程的退出代码.HasShutdownSta ...
- jquery中使用offset()获得的div的left=0,top=0
写东西的时候要获取div的left和top,但怎么也取不到值都为0,但在chrome的console下是可以取到值的, 瞬间就纳闷了,于是乎就在网上找各种方法,大家一般的问题可能都是要获取的div被隐 ...
- 学习DSP(三)安装C2833x/C2823x C/C++ 头文件和外设示例-压缩包
进入http://www.ti.com.cn/product/cn/tms320f28335 下载C2833x/C2823x C/C++ 头文件和外设示例 即SPRC530,目前最新版本是V131.安 ...