Lua中的运算符简明总结

1. 数字运算

支持 +, -, *, /,^ 。 这些运算符的操作数都是实数。

2. 连接运算

连接两个字符串,用”..”运算符。
如果操作数为数字,Lua将数字转换成字符串。

3. 赋值运算

多变量一起赋值:

代码如下:

a,b,c,d = ‘www.jb51.net', ‘Q群: 14624678 ′,1,2

变量交换:

代码如下:

a,b=b,a

在默认情况下,变量总是认为是全局的。假如需要定义局部变量,则在第一次赋值的时候,需要用local说明。如:

代码如下:

local a,b,c = 1,2,3

a,b,c都是局部变量。

4. 逻辑运算

代码如下:

and, or, not

在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true
and 和 or的运算结果不是true和false,而是和它的两个操作数相关。
a and b:如果a为false,则返回a;a true 返回b
a or b:如果 a 为true,则返回a;a false 返回b
模拟C语言中的语句:x = a? b : c,在Lua中,可以写成:x = a and b or c。
最有用的语句是: x = x or v,它相当于:if not x then x = v end 。

5. 关系运算

代码如下:

< > <= >= == ~=

这些操作符返回的结果要么false要么true。
==和~=是比较两个值,如果两个值类型不同,Lua认为两者不同。
Lua比较数字按传统的数字大小进行,比较字符串按字母的顺序进行,但是字母顺序依赖于本地环境。
如果使用关系运算符来比较两个table,只有两个table是同一个对象的时候才能得到预期的结果,因为变量只是table对象的引用,就像指针一样,不能直接比较存在于table中的值。

代码如下:

> t_a = [ 'www.jb51.net', 'Q群:14624678 ']
> t_b = [ 'www.jb51.net', 'Q群:14624678 ']
> if t_a == t_b then
> print("true")
> else
>  print("false")
> end
false

t_a与t_b是两个完全不同的结构。

代码如下:

> t_a = [ 'www.jb51.net', '14624678 ']
> t_b = t_a
> if t_a == t_b then
>  print("true")
> else
>  print("false")
> end
true

t_b指向了同样的对象t_a。

(0)

相关推荐

  • Lua学习笔记之运算符和表达式

    本篇博客学习一下Lua的运算符,比较简单,我将说明直接写到了代码中,代码如下. --算术运算符 --二元运算符:+ - * / ^ (加减乘除幂) --一元运算符:- (负值) --这些运算符的操作数都是实数,Lua中没有自增自减的运算符. --关系运算符 -- < > <= >= == ~= --这里需要注意的是不等于是用~=表示的 --这些操作符返回结果为false或者true:==和~=比较两个值,如果两个值类型不同,Lua认为两者不同: --nil只和自己相等.Lua通过引

  • Lua中算术运算符的使用示例

    下表列出了所有的Lua语言支持的算术运算符.假设变量A持有10和变量B持有20,则:  例子 试试下面的例子就明白了所有的Lua编程语言提供了算术运算符: 复制代码 代码如下: a = 21 b = 10 c = a + b print("Line 1 - Value of c is ", c ) c = a - b print("Line 2 - Value of c is ", c ) c = a * b print("Line 3 - Value o

  • Lua中..和#运算符的使用方法

    通过Lua语言支持其他运算符包括串联和长度.  例子 试试下面的例子就明白了在Lua编程语言提供的其他运算符: 复制代码 代码如下: a = "Hello " b = "World" print("Concatenation of string a with b is ", a..b ) print("Length of b is ",#b ) print("Length of b is ",#"

  • Lua中的运算符简明总结

    1. 数字运算 支持 +, -, *, /,^ . 这些运算符的操作数都是实数. 2. 连接运算 连接两个字符串,用".."运算符. 如果操作数为数字,Lua将数字转换成字符串. 3. 赋值运算 多变量一起赋值: 复制代码 代码如下: a,b,c,d = 'www.jb51.net', 'Q群: 14624678 ′,1,2 变量交换: 复制代码 代码如下: a,b=b,a 在默认情况下,变量总是认为是全局的.假如需要定义局部变量,则在第一次赋值的时候,需要用local说明.如: 复制

  • Lua中关系运算符的使用教程

    下表列出了所有的Lua语言支持的关系运算符.假设变量A持有10和变量B持有20则: 示例 试试下面的例子就明白了所有的Lua编程语言提供的关系运算符: 复制代码 代码如下: a = 21 b = 10 if( a == b ) then    print("Line 1 - a is equal to b" ) else    print("Line 1 - a is not equal to b" ) end if( a ~= b ) then    print(

  • Lua中的控制结构(流程控制)简明总结

    在Lua中,所有的控制结构块都是以end作为结束标记. 控制结构的表达式结果可以是任何值,Lua下只有false和nil为假,其他值都为真. 1. if 复制代码 代码如下: if 条件 then     ... end;     if 条件 then     ... else     ... end;   if 条件 then     ... elseif 条件 then     ... else     ... end; then关键字用来标记有条件的代码块的开始. 2. repeat 复制

  • Lua中基本的数据类型、表达式与流程控制语句讲解

    1. Lua类型 1.1 基本类型 Lua是一种动态类型语言,没有类型定义的语法.Lua一共有8种基础类型:nil(空).boolean(布尔).number(数字).string(字符串).userdata(自定义类型).function(函数).thread(线程).table(表). 函数type可根据一个值返回其类型名称(字符串),如print(type(print)),输出"function":print(type(type(X))) ,输出"string"

  • Lua中的变量类型与语句学习总结

    1. Lua类型 1.1 基本类型 Lua是一种动态类型语言,没有类型定义的语法.Lua一共有8种基础类型:nil(空).boolean(布尔).number(数字).string(字符串).userdata(自定义类型).function(函数).thread(线程).table(表). 函数type可根据一个值返回其类型名称(字符串),如print(type(print)),输出"function":print(type(type(X))) ,输出"string"

  • Lua中的metatable详解

    Lua 中 metatable 是一个普通的 table,但其主要有以下几个功能: 1.定义算术操作符和关系操作符的行为 2.为 Lua 函数库提供支持 3.控制对 table 的访问 Metatables 定义操作符行为 Metatable 能够被用于定义算术操作符和关系操作符的行为.例如:Lua 尝试对两个 table 进行加操作时,它会按顺序检查这两个 table 中是否有一个存在 metatable 并且这个 metatable 是否存在 __add 域,如果 Lua 检查到了这个 __

  • 解析Lua中的全局环境、包、模块组织结构

    模块就是一个程序库,而包是一系列模块.Lua中可以通过require来加载模块,然后得到一个全局变量表示一个table.Lua将其所有的全局变量保存在一个被称为"环境"的常规table中.本文首先介绍环境的一些实用技术,然后介绍如何引用模块及编写模块的基本方法. 1. 环境 Lua将环境table保存在一个全局变量_G中,可以对其访问和设置.有时我们想操作一个全局变量,而它的名称却存储在另一个变量中,或者需要通过运行时的计算才能得到,可以通过value = _G[varname]来获得

  • 深入解读Lua中迭代器与泛型for的使用

    泛型for原理 迭代器是一种可以遍历集合中所有元素的机制,在Lua中通常将迭代器表示为函数,每调用一次函数,就返回集合中"下一个"元素.每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置及如何步进到下一个位置,closure就可以完成此项工作.下面的示例是列表的一个简单的迭代器: function values(t) local i = 0 return function() i = i + 1; return t[i] end end 循环调用: t = {10

随机推荐