美文网首页
Lua学习笔记(2)——表达式

Lua学习笔记(2)——表达式

作者: 嘿小药罐 | 来源:发表于2017-03-16 15:23 被阅读4次

算术操作符

1.常规的算术操作符:二元的 “ + "," - "," * "," / "," ^ ", " % ";一元的:“-”(负号)

2.取模:a%b = a - floor ( a / b ) * b。对于整数来说通常是有意义的。而对于实数则可能有其他用途:x%1的结果是x的小数部分,而x-x%1结果是其整数部分。

x-x%0.01是x精确到小数点后两位的结果

关系操作符

1.关系操作符:>, <, <=, >= , == , ~= 。

2.所有关系操作符的运算的结果都是true或false。

3.任意两个值需要类型相同,值相等才会相等。类型不同Lua就人为它们不相等。

4.对于table,userdata和函数,作引用比较。即,当它们引用同一个对象时才认为它们相等。

引用比较

5.比较两个不同类型值时需要注意,字符串是按字母次序作比较的。例如:2<15 -> true,"2"<"15" -> false(因为是按照字母次序来作比较的)。

逻辑操作符

1.逻辑操作符:and, or ,not

2.false和nil视为假,其他任何东西视为真。

3.and,第一个操作数为假时返回第一个操作数,反之返回第二个操作数。

4.or,第一个操作数为真时返回第一个操作数,反之返回第二个操作数。

and   or

5.and 和 or 都使用“短路求值(short-cut evaluation)”,即只会在需要时才去评估第二个操作数。短路求值可以确保像(type(v) == "table" and v.tag == "h1" )这样的表达式不会导致运行时错误(当v不是一个table时,Lua不会对v.tag进行求值评估)。

选出数字x和y中的较大者

6.x = x or v 等价于 if not x then x = v end(当x没有初始化时,将其设为一个默认值v)。

7.not,只返回true或false。

not

优先级

操作符的优先级

1.指数操作符“^”和连接操作符“..”是“右结合”,其他所有操作符为“左结合”。

等价式

构造式

1.构造式是用于创建和初始化table的表达式。

2.最简单的构造式是空构造式 {} ,用于创建一个空table,或者初始化数组。

初始化数组(序列或列表)

3. a = {x = 10, y = 20}  等价于  a = {}; a.x = 10; a.y = 20;

4.table创建后可以增删改:

table的增删改

5.链表代码:

链表(从标准输入中读取,按每行相反的次序存储到一个链表中,类似于栈) 遍历链表并打印

6.记录风格的初始化和列表风格的初始化混合在一个构造式中:

混合构造式 每个polyline[i]元素都是一个table,表示一条记录

7.Lua提供一种通用的格式,允许在方括号之间,显式地用一个表达式来初始化索引值。

更通用的格式

8. { x = 0, y=0 } 等价于 { ["x"] = 0, ["y"] = 0 }

9.{"r", "g","b"} 等价于 { [1] = "r", [2] = "g", [3] = "b"}

10.构造式中可以用分号代替逗号,区分构造式中不同的成分:

将列表部分与记录部分区分开

相关文章

  • lua入门笔记 目录

    lua的中文API lua入门笔记1 类型 表达式 语句 函数lua入门笔记2 深入函数 深入函数 迭代器与泛型f...

  • Lua学习笔记(2)——表达式

    算术操作符 1.常规的算术操作符:二元的 “ + "," - "," * "," / "," ^ ", " % "...

  • 学习笔记 正则表达式

    2021.01.19 北京海淀 -2℃ 小雪转晴 正则表达式学习笔记 说明:该笔记参考“菜鸟教程”网站正则表达式...

  • 2021-08-06_lua脚本学习笔记

    20210806_lua脚本学习笔记 1概述 1.1为什么lua脚本具有原子性 Redis保证以原子方式执行脚本,...

  • 2022-05-02_Lua脚本操作redis锁学习笔记

    20220502_Lua脚本操作redis锁学习笔记.md 1概述 释放锁要用 lua 脚本,把检查锁是不是本线程...

  • 2019-01-14

    Lua与C交互学习笔记 Lua与C交互是通过虚拟栈实现的 在C中调用Lua 方法一 栈中的情况如下表所示 方法二 ...

  • Lua学习笔记

    函数调用: lua函数在两种情况下,可以省略’()’:函数中参数是一个单独的字符串或者表。因此,myfunc{a=...

  • Lua 学习笔记

    1. dummy variables(虚变量) Usually,I reserve the identifier ...

  • Lua学习笔记

    1.元表中的算术操作符对应字段 __add:加法__sub:减法__union:整合去重__dev:除法__unm...

  • Lua学习笔记

    参考Lua 5.3 参考手册Lua 5.1 参考手册云风的blogLua开发者论坛Pogramming in Lu...

网友评论

      本文标题:Lua学习笔记(2)——表达式

      本文链接:https://www.haomeiwen.com/subject/slsdnttx.html