lua学习之表达式

3.1 算术运算符

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

一元运算符:-(负值)

这些运算符的操作数都是实数。

3.2 关系运算符

< > <= >= == ~=

==,~=如果两个值d类型不同,则不等

lua通过引用比较tables,userdata,functions,也就是当且仅当表示同一个对象时才相等。

3.3 逻辑运算符

and or not

a and b -- 如果a为false,则返回a,否则返回b

a or b --如果a为true,则返回a,否则返回b

and 优先级比 or 高

3.4 连接符

..

字符串连接符,如果是数字,自动转成字符串。

3.5

从高到底:

^

not - (unary)

* /

+ -

..

< > <= >= ~= ==

and

or

3.6 表d的构造

days  {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

print(days[4]) --> Wednesday

注:不推荐下标从0开始,否则很多标准库不能使用。

用table构造一个list

list = nil

for line in io.lines() do

list = {next = list, value = line}

end

从标准输入读进每行,然后反序形成链表。

l = list

while l do

print(l.value)

l = l.next

end

时间: 2025-01-17 06:17:37

lua学习之表达式的相关文章

Lua学习(2)——表达式

1. lua算术操作符lua支持的算数操作符: + - * /除 ^指数 %取模 -符号 2. lua关系操作符 <小于 >大于 <= >= == ~=不等于 3. 逻辑操作符 and,or,not 所有逻辑操作符将false,nil 视为假,其他视为真. >print(4 and 5) 5 max = (x>y) and x or y 类似于C语言中选择表达式 max = x>y?x:y 4. 字符串连接 ..表达式 > print("Hello

Lua学习笔记(七):迭代器与泛型for

1.迭代器与闭包 迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素.在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素. 迭代器需要保留上一次成功调用的状态和下一次成功调用的状态,也就是他知道来自于哪里和将要前往哪里.闭包提供的机制可以很容易实现这个任务.记住:闭包是一个内部函数,它可以访问一个或者多个外部函数的外部局部变量.每次闭包的成功调用后这些外部局部变量都保存他们的值(状态).当然如果要创建一个闭包必须要创建其外部局部变量.所以一个典型的闭包的结构包含

Lua学习(4)——函数

在Lua中函数的调用方式和C语言基本相同,如:print("Hello World")和a = add(x, y).唯一的差别是,如果函数只有一个参数,并且该参数的类型为字符串常量或table的构造器,那么圆括号可以省略,如print "Hello World"和f {x = 20, y = 20}.    Lua为面对对象式的调用也提供了一种特殊的语法--冒号操作符.表达式o.foo(o,x)的另一种写法是o:foo(x).冒号操作符使调用o.foo时将o隐含的作

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

Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.org/manual/5.1/manual.html#2.1 关于分号 语句的最后可以用分号";"表示结束,也可以不写. 而对于一行有多个语句的情况下,语句之间可以用分号";"隔开,也可以用空白隔开.一般来说,建议总是用分号隔开. 使用注释 单行注释使用“--”即可,以后的

Lua学习笔记(三):表的构造

构造器是创建和初始化表的表达式.表是Lua特有的功能强大的东西.最简单的构造函数是{},用来创建一个空表.可以直接初始化数组: 1 days = {"Sunday", "Monday", "Tuesday", "Wednesday", 2 "Thursday", "Friday", "Saturday"} Lua将“Sunday”初始化days[1](第一个元素索引为

lua学习笔记之基本语法

Lua学习笔记之基本语法 1.  赋值语句 赋值是改变一个变量的值和改变表域的最基本的方法. a = "hello".."world" t.n = t.n+1 lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会一次赋给左边的变量. a,b = 10,2*x    <-->a = 10;b = 2*x 遇到赋值语句lua会先计算右边所有的值然后再执行赋值操纵,所以我们可以这样进行交换变量的值: x,y = y,x    

lua学习笔记之函数

Lua学习笔记之函数 1.  函数的作用 函数主要完成指定的任务,这样的情况下函数作为调用语句使用,函数可以计算并返回值,这样的情况下函数作为赋值语句的表达式使用. 语法: funcationfunc_name(arguments-list) Statements-list end 调用函数的时候,如果参数列表为空,必须使用()表示是函数调用. Print(8*9,9/8) a = math.sin(3) +math.cos(10) print(os.date()) 上述规则有一个例外,当函数只

Lua学习(3)——控制结构

Lua提供了一组传统的,小巧的控制结构,包括用于条件执行的if,用于迭代的while.repeat和for.所有的控制结构都有一个现实的终止符号:if for while 都以end结尾,repeat以until作为结尾. 控制结构中的条件表达式可以使任何的值,Lua将所有false和nil的值视为“真”. 1. if then else语句 if a<0 then a=0 end if a<b then return a else return b end 嵌套的if,可以使用elseif

[转]LUA 学习笔记

Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生成了一个exe,直接可以测试lua了 方式二(推荐): 从https://code.google.com/p/luaforwindows/ 下载“LuaForWindows_v5.1.4-46.exe”,一键安装即可  二.执行 lua xxx.lua 三.注释 1.行注释格式:-- 2.块注释格式