Lua语言学习之表达式和语句
来源:互联网 发布:腾讯视频有mac版本吗 编辑:程序博客网 时间:2024/05/09 17:37
上次已经学习了Lua的基本语法,今天开始学习表达式。
表达式用于表示值。Lua的表达式中可以包含数字常量、字面字符串、变量、一元和二元操作符及函数调用。另外,有别于传统的是,表达式中还可以包括函数定义(匿名函数或闭包)和table构造式。
一、首先,熟悉一下各种操作符:
1.算术操作符:+、-、*、/、%、- (负号)和 ^ (指数), Lua比其他语言多了一个指数运算符,其他都一样。
2.关系操作符:< > <= >= == ~= , 和其他语言( != )不同的是不“不等于”。运算结果都是true或false。
3.逻辑操作符:and or not 。and和or都使用“短路求值(short-cut evaluation),也就是说,它们只会在需要时才去评估第二个操作符,而且它们的结果与其他语言截然不同:
and --> 如果它的第一个操作数为假,就返回第一个操作数,否则就返回第二个操作数;
or -----> 如果它的第一个操作数为真,就返回第一个操作数,否则就返回第二个操作数;
not相当于C中的非(!),结果是true或false。
注意:Lua中的假只有2种-----> false 和 nil , 其他值都是真。其他语言一般有四大假:0,false,nul,‘\0’。特别注意Lua中的0是真,这点区别很大。
想一想:C语言中的三目运算符 ?: 怎么表达 ?
还有一个字符串连接符 .. 前面已经接触到了。
二、语句
和其他语言类似,无非是一些赋值语句,条件语句,循环语句等,这都很简单,只是格式上有一些区别而已。
1. 赋值语句
赋值(assignment)的基本含义是修改一个变量或者一个table中字段的值,但是Lua中的赋值有一些额外的不同:可以多重赋值,也就是一次将多个值赋给多个变量,各变量或值用逗号分隔。
a, b = 10, "hello"
a, b, c = 0, 1, 2
a, b, c = 0, 1 -----> c没有赋值,c = nil
a, b = 0, 1, 2 -------> 2 没有变量接收,被忽略
a, b = b, a ------> 想想这是什么意思 ?
2. if 条件选择语句
注意格式:
if a < 0 then a = 0end
嵌套的if语句:
if a and b thenprint(a)
elseif c and d thenprint(c)elseif e or f thenprint(e)
elseprint("nothing")end
3.while 循环:先判断条件,再执行循环体
local i = 1
while a[ i ] doprint ( a[ i ] )i = i + 1 ----> Lua 中没有++、-- 运算符end
4.repeat-until 语句,一直执行循环体,直到条件满足时结束
repeat
line = io.read()until line ~= " "
print ( line )
5.for 循环语句,有两种:数字型for(numeric for)和泛型for(generic for)
数字型for:
for var = start,end,step do
<循环体>
end
泛型for:通过一个迭代器(iterator)函数来遍历所有值:
for i, v in ipairs( a ) do
print( v )
end
ipairs是Lua基础库中提供的用于遍历数组的迭代器函数,还有一个迭代table元素的函数pairs。其实,数组也是用table表示的:
a = {1,2,3,4,5,6,7}这就是数组,用ipairs ( a ) 可以遍历所有元素
b = { “one” = “windows”,“two” = “ Unix ”,“three” = “ Mac ” }这就是table,用pairs ( b ) 可以遍历所有元素;
c = {1,2,3,4,5,6,7,“one” = “windows”,“two” = “ Unix ”,“three” = “ Mac ” }这是table,但其中有数组元素,此时用pairs 和 ipairs 遍历就不同了,如此一来就能区别两者的不同之处。
6. break 和 return ,这两个语句用于跳出当前的块,比较简单,不用多说了。
今天先到这里,明天继续。
- Lua语言学习之表达式和语句
- Lua表达式和语句
- Lua-2---表达式和语句
- lua学习之表达式
- Lua学习之表达式
- lua学习(4)_____表达式、语句
- Lua学习之【3】:表达式
- Lua学习笔记之表达式
- Step By Step(Lua表达式和语句)
- C语言学习_005_运算符、表达式和语句
- #C语言学习笔记#运算符、表达式和语句
- C语言入门教程之三表达式和语句
- C语言入门教程之三表达式和语句
- Lua语言学习之迭代器
- Lua语言学习之环境
- lua 表达式及语句
- Lua学习笔记之循环语句
- Lua学习之8:控制语句
- Java使用iText生成word文件的完美解决方案(亲测可行)
- 11. JAVA常用类库 Part 1 (StringBuffer、Runtime、国际化程序) ----- 学习笔记
- 用eclipse如何debug部署在tomcat上的应用(转)
- 一些小问题
- 华仁堂和肉体和人
- Lua语言学习之表达式和语句
- 微信iOS终端SDK新手使用指南
- (转载)android中path的arcTo方法的使用 .
- j2ee的各种下载地址
- [android基础知识] 之三:系统级service
- decorators.xml
- winpcap 在win7 64位上广播 以太网数据包,当存在虚拟机或无线网卡(wifi)时存在问题;
- 1.Report Estimation
- 数据结构