Lua学习笔记(二)
来源:互联网 发布:mac删除酷我程序 编辑:程序博客网 时间:2024/06/08 10:14
3.表达式
3.1 算数表达式
二元运算符:+-*/^
一元运算符:-(负值)
3.2 关系运算符
< > <= >= == ~=
==和~=比较两个值,如果两个值类型不同,Lua认为两者不同,nil只和自己相等。
3.3 逻辑运算符
and or not
逻辑运算符认为false和nil是假,其他为真
and和or的运算结果不是true和false,而是和他两个操作的数值有关。
a and b – 如果a为false,则返回a,否则返回b
a or b – 如果a为true,则返回a,否则返回b
如果x为false或者nil就给x赋初始值
x = x or v
等价于
if not x then
x =v
end
C语言中的三目运算符
a?b:c
Lua中
(a and b)or c
not的结果只返回true或者false
not nil – true
not 2 – false
3.4 连接运算符
..
3.5 优先级
从高到低
^
not -
* /
+ -
..
< > <= >= ~= ==
and
or
3.6 表的构造
表最简单的构造函数是{},用来创建一个空表,可以直接初始化数组
a = {x=0, y=0} <–> a = {}; a.x=0; a.y=0
不管用何种方式创建table,我们都可以向表中添加或删除任何类型的域,构造函数仅仅影响表的初始化
每次调用构造函数Lua都会创建一个新的table,可以使用table构造list
list = nil
for line in io.lines() do
list = {next=list, value=line}
end
下面这段代码从标准输入进行读取每行,然后反序形成链表
在同一个构造函数中可以混合列表风格和 record 风格进行初始化,如:
上面两种构造函数的初始化方式还有限制,比如你不能使用负索引初始化一个表中
元素,字符串索引也不能被恰当的表示。下面介绍一种更一般的初始化方式,我们用
[expression]显示的表示将被初始化的索引:
list的风格初始化和record风格初始化是这种一般初始化的特例:
{x=0, y=0} <–> {[“x”]=0, [“y”]=0}
{“red”, “green”, “blue”} <–>{[1]=”red”, [2]=”green”, [3]=”blue”}
注意:不推荐数组下标从 0 开始,否则很多标准库不能使用。
在构造函数的最后的”,”是可选的,可以方便以后的扩展。
a = {[1]=”red”, [2]=”green”, [3]=”blue”,}
在构造函数中域分隔符逗号(”,”)可以用分号(”;”)替代,通常我们使用分号用来
分割不同类型的表元素。
{x=10, y=45; “one”, “two”, “three”}
未完待续…
- Lua学习笔记(二)
- Lua 学习笔记(二)
- Lua学习笔记(二)
- Lua学习笔记(二)
- 学习Lua笔记(二)
- Lua学习笔记(二)
- Lua学习笔记二
- Lua学习笔记二
- lua 学习笔记 二
- lua学习笔记(二)
- Lua语法学习笔记(二)
- Lua学习笔记(基础二)
- lua学习笔记二--函数
- Lua 笔记(二)
- lua学习(二)
- Lua 学习笔记(四) —— 函数(二)
- Lua学习笔记(二)—— 函数
- lua学习(二)----c++调用LUA
- Android开发艺术探索学习摘要(一)
- maven常见问题
- 机器学习和深度学习资料
- Android问题集之Fragment
- python-builtin学习
- Lua学习笔记(二)
- 动态规划0—1背包问题
- linux笔记
- 动态的添加、删除表单
- 解决phantomjs截图失败,phantom.exit位置
- 漫谈现代专利
- 马斯克创办新公司:致力于实现“人机共生生命体”
- MyBatis 关联映射之一对一
- 文本分析--校园新闻:关键词获取