lua--lua中的表达式

转载 2015年11月21日 15:38:13

算术操作符

Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。

关系操作符

Lua提供的关系操作符有:”<”,”>”,”<=”,”>=”,”==”,”~=”;所有这些操作符的运算结果都是true或false。

操作符==用于相等性测试,操作符~=用于不等性测试。这两个操作符可以应用于任意两个值。如果两个值具有不同的类型,Lua就认为它们是不相等的;特别需要说明的是,nil只与其自身相等。

对于table、userdata和函数,Lua是作引用比较的。也就是说,只有当它们引用同一个对象时,才认为它们相等。

逻辑操作符

Lua提供的逻辑操作符有and、or和not。与条件控制语句一样,所有的逻辑操作符将false和nil视为假,而将其它的任何东西视为真。对于操作符and来说,如果它的第一个操作数为假,就返回第一个操作数;不然就返回第二个操作数。对于操作符or来说,如果它的第一个操作数为真,就返回第一个操作数;不然就返回第二个操作数。这里和C++等语言是存在区别的,Lua的逻辑操作符并不是简单的返回true或false,而是返回操作数的值。例如以下代码:
字符串连接

print(4 and 5)               -->5
print(nil and 13)          -->nil
print(false and 13)     -->false
print(4 or 5)               -->4
print(false or 5)          -->5

and和or都使用“短路求值”,也就是说,它们只会在需要时才去评估第二个操作数。

字符串连接

要在Lua中连接两个字符串,可以使用操作符“..”(两个点)。如果其任意一个操作数是数字的话,Lua会将这个数字转换成一个字符串。在Lua中,字符串是不可变的值,连接操作符只会创建一个新字符串,而不会对其原操作数进行任何修改。

table构造式

构造式是用于创建和初始化table的表达式。最简单的构造式就是一个空构造式{},用于创建一个空table。构造式还可以用于初始化数组,数组的下标从1开始。例如:

local tbDays ={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
print(tbDays[1])          -->Sunday
print(tbDays[2])          -->Monday
print(tbDays[3])          -->Tuesday
print(tbDays[4])          -->Wednesday
print(tbDays[5])          -->Thursday
print(tbDays[6])          -->Friday
print(tbDays[7])          -->Saturday

Lua还提供了一种特殊的语法用于初始化table:

local tb1 = {x=10, y=20}
print(tb1.x)          -->10
print(tb1["x"])          -->10

除此之外,Lua还提供了一种更通用的格式,这种格式允许在方括号之间,显式地用一个表达式来初始化索引值,例如:

local tb1 = {["+"] = "add", ["-"] = "sub", ["*"] = "mul", ["/"] = 
"div"}
print(tb1["+"])

比如local tb1 = {x=10, y=20}这种构造方式,其实是和local tb1 = {[“x”] = 10, [“y”] = 20}是等价的。在实际编程中,这两种构造式,都可以替换的用。

Lua基础(一)——赋值语句、表达式、流程控制、函数

赋值语句 注释,用(--)来表示 定义,lua中没有定义(申明数据类型),它是通过赋值来确定其数据类型的。 赋值,是改变一个变量的值和改变表域的最基本的方法。 a = "hello" .. "wor...

lua 字符串 正则表达式 转义 特殊字符

string.gsub 函数有三个参数:目标串,模式串,替换串。 基本作用是用来查找匹配模式的串,并将使用替换串其替换掉:  s = string.gsub("Lua is good", "g...

Lua 正则表达式 匹配

. 任意字符 %s 空白符 %p 标点字符 %c 控制字符 %d 数字 %x 十六进制数字 %z 代表0的字符 %a 字母 %l 小写字母 %u 大写字母 %w 字母和数字 上面...

lua 文件路径 字符串处理 数据结构 正则表达式 Class 程序集

1 文件路径相关处理 -- 生成父目录下自己的文件路径 rootpath = ... --文件当前路径 dotindex = string.find(rootpath, "%.%w+$") --返回路...

Lua中文教程学习笔记 (2) 表达式

Lua中文教程学习笔记 (2) 表达式 Lua 中的表达式包括数字常量、字符串常量、变量、一元和二元运算符、函数调用。还可以是非传统的函数定义和表构造。 算术运算符 二元运算符:+ - * ...

Lua学习笔记之表达式

Lua学习笔记之表达式 1、  算数运算符 二元运算符:+-*/^(加减乘除幂) 一元运算符:-(负值) 这些运算符的操作都是实数。 2、  关系运算符 、=、==~= 这些操作符返回结...

Lua学习笔记 第三章 表达式

3.1算术操作符 lua支持常规的算术操作符 —— + - * / ^ % -(负号) 例如 x^0.5是计算x的平方根  x^(-1/3)是计算x立方根的倒数 对于实数x,x%1的结果是x的小...

lua的string库和正则表达式

一.前提要了解一下lua 的string几个方法 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都...

正则表达式之lua篇

模式匹配函数 在string库中功能最强大的函数是:string.find (字符串查找), string.gsub (全局字符串替换), and string.gfind (全局字符串查找). 这些...
  • wchinaw
  • wchinaw
  • 2011年05月20日 14:04
  • 881

ngx_lua模块中正则表达式相关的api

在Lua模块中,通过正则表达式处理字符串的相关API,主要有: >
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua--lua中的表达式
举报原因:
原因补充:

(最多只允许输入30个字)