《Lua基础语法(一).ppt》由会员分享,可在线阅读,更多相关《Lua基础语法(一).ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Data Industry Research Lab.秦皇岛数据产业研究院秦皇岛数据产业研究院秦皇岛数据产业研究院秦皇岛数据产业研究院目录目录标识符标识符保留字保留字Chunks(语句)(语句)基本数据类型基本数据类型注释注释表达式表达式注释注释u 单行注释:连续两个减号“-”表示注释的开 始,直到行末为止。u 多行注释:由“-”表示注释开始,并 且一直延续到“-”为止。变量变量u 全局变量:默认情况下,变量总认为是全局的。全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。u 局部变量:定义局部变量需要赋初值的时候用“
2、local”说明。比如:local a,b,c=1,2,3 局部变量局部变量应该尽可能的使用局部变量,有应该尽可能的使用局部变量,有两个好处两个好处:u 避免命名冲突u 访问局部变量的速度比全局变量更快.标识符标识符 字母(letter)或者下划线开头的字母、下划线、数字序列。最好不要使用下划线加大写字母的标识符。注意:Lua大小写敏感。合法的标识符 非法标识符 HelloWorld and _983 983 _name hello world保留字保留字 保留字:保留字:LuaLua语言中一些赋以特定的含义,语言中一些赋以特定的含义,用做专门用途的字符串。用做专门用途的字符串。以下字符为以下
3、字符为LuaLua保留字,不能当做标识符。保留字,不能当做标识符。and break do else elseifand break do else elseifend false for function ifend false for function ifin local nil not orin local nil not orrepeat return then true untilrepeat return then true untilwhilewhilechunks Chunk是一系列语句(可以理解为把一堆零散的东西放到一个盒子里运行),Lua执行的每一块语句,比如一个文件或者
4、交互模式下的每一行都是一个Chunk。一个Chunk可以是一个语句,也可以是一系列语句的组合,还可以是函数,Chunk可以很大,在Lua中几个MByte的Chunk是很常见的。每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用“;”分开。a=1 b=2 -ugly a=1;b=2 -beautiful 基本数据类型基本数据类型Lua是动态类型语言,变量不用类型定义。(类型的检查是在运行时做的)a=5 print(a)LuaLua中定义了中定义了8个基本类型:个基本类型:nil、boolean、number、string、userdata、function、thread和table(
5、1 空值空值 nilu LuaLua中特殊的类型,它只有一个值:中特殊的类型,它只有一个值:nilnilu 所有没有使用过的变量,都是所有没有使用过的变量,都是nilnil,nilnil既是值既是值 又是类型。又是类型。例:例:print(a)-nil print(type(a))-nilu 一个全局变量没有被赋值以前默认值为一个全局变量没有被赋值以前默认值为nilnil;给;给 全局变量赋全局变量赋nilnil可以删除该变量。可以删除该变量。(2 逻辑型逻辑型 boolean 仅有两个有效值true和false,在控制结构的条件中除了false和nil为假,其他值都为真。所以Lua认为0和空
6、串都是真。例:flag=true if(flag)then print(OK)end(3 数值数值 number 数值,在Lua中数值相当于C语言的double,它可以代替整数,浮点数。(4 字符串字符串 string 指字符的序列,string既可以用单引号也可以用双引号表示。例:a=“a little boy”b=“小朋友”c=“10”注意:Lua中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串。运行时,Lua会自动在string和numbers之间自动进行类型转换,当一个字符串使用算术操作符时,string就会被转成数字。例:print(10+1)-11 print(10+
7、1)-10+1 print(hello+1)-ERROR(cannot convert hello)当Lua期望一个string而碰到数字时,会将数字转成string。例:print(10.20)-1020(5 函数函数 function function本身也是一种变量,可以作为函数参数使用,还可以作为返回值使用。function func_name(arguments-list)statements-list;end;Lua语言的一大特色。(下面章节详细讨论)(6 Userdata和和(7 thread userdata专门和Lua的宿主机打交道。thread 线程类型(8(8 表结构表结
8、构 table 表类型,功能很强大。运算符运算符Lua支持如下运算符:u 算数运算符:二元运算符:+-*/%(加减乘除幂余)一元运算符:-(负值)u 关系运算符:=u 逻辑运算符:and or notu 连接运算符:.两个点算数运算符算数运算符二元运算符:+-*/%(加减乘除幂余)一元运算符:-(负值)这些运算符的操作数都是实数。例:count.lua关系运算符关系运算符 =u 这些操作符返回结果为false或者true;u=和=比较两个值,如果两个值类型不同,Lua认为两者不同;”0”=0 -false u nil只和自己相等。u Lua比较数字按传统的数字大小进行,比较字符串按字母的顺序进
9、行,但是字母顺序依赖于本地环境。如:compare.lua逻辑运算符逻辑运算符and(与)or(或)not(非)u 逻辑运算符认为false和nil是假(false),其他为真,0也是true.u and和or的运算结果不是true和false,而是和它的两个操作数相关。a and b-如果a为false,则返回a,否则返回b a or b-如果a为true,则返回a,否则返回b例:logic.lua连接运算符连接运算符.u 字符串连接,如果操作数为数字,Lua将数字转成字符串。u 连接符两边必须要有空格如:print(Hello .World)-Hello World print(0.1)-01优先级优先级 not -(unary)*/+-.=and or 秦皇岛数据产业研究院秦皇岛数据产业研究院秦皇岛数据产业研究院秦皇岛数据产业研究院