Lua学习笔记之运算符和表达式
本篇博客学习一下Lua的运算符,比较简单,我将说明直接写到了代码中,代码如下。
--算术运算符 --二元运算符:+ - * / ^ (加减乘除幂) --一元运算符:- (负值) --这些运算符的操作数都是实数,Lua中没有自增自减的运算符。 --关系运算符 -- < > <= >= == ~= --这里需要注意的是不等于是用~=表示的 --这些操作符返回结果为false或者true;==和~=比较两个值,如果两个值类型不同,Lua认为两者不同; --nil只和自己相等。Lua通过引用比较tables、userdata、functions。也就是说当且仅当两者表示同一个对象时相等。 --Lua比较数字按传统的数字大小进行,比较字符串按字母的顺序进行, print("0" == 0) -- false a = {1,2} b = {1,2} c = a print(a==c) -->true print(a==b) -->false print(2 < 15 ) -- true print("2" < "15" ) -- false --逻辑运算符 --and or not --逻辑运算符认为false和nil是假(false),其他为真,0也是true. --and和or的运算结果不是true和false,而是和它的两个操作数相关。 --a and b 如果a为false,则返回a,否则返回b --a or b 如果a为true,则返回a,否则返回b print(false and 13) --> false print(4 or 5) --> 4 print(false or 5) --> 5 --一个很实用的技巧:C语言中的三元运算符a ? b : c 在Lua中可以这样实现:(a and b) or c local a = 1 local b = 2 local num = (a>b and a) or b print(num) -->2 --连接运算符 --..两个点 --字符串连接,如果操作数为数字,Lua将数字转成字符串。注意数字之间的空格 print("Hello ".."lua") --> Hello lua print(0 .. 1) --> 01
最后说明一下运算符的优先级,给大家一张表参考,用到的时候查。
相关推荐
-
Lua中的基本数据类型详细介绍
基础介绍 Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8中基本类型,分别是: 1.nil(空)类型 2.boolean(布尔)类型 3.number(数字)类型 4.string(字符串)类型 5.userdata(自定义类型) 6.function(函数)类型 7.thread(线程)类型 8.table(表)类型 以上是Lua中的8中基本类型,我们可以使用type函数,判断一个值得类型,type函数返回一个对应类型的字符串描述.例如: 复
-
Lua判断数据类型的方法
一.判断数据类型的方法 type(xxxx) 这个函数的返回值是string类型 也就是说: 复制代码 代码如下: a = type(X) -- a="nil" b = type(a) -- b="string" a = type(nil) -- a="nil" 二.Lua脚本语言的8种基本数据类型 1.数值(number):内部以double表示. 2.字符串(string):总是以零结尾,但可以包含任意字符(包括零),因此并不等价
-
深入探究Lua中的解析表达式
使用一个模式 这个例子显示了一个建立和使用模式的程序,它非常简单但很完整: 复制代码 代码如下: local lpeg = require "lpeg" -- matches a word followed by end-of-string p = lpeg.R"az"^1 * -1 print(p:match("hello")) --> 6 print(lpeg.match(p, "hello"))
-
Lua数据类型介绍
Lua 是一个功能强大.快速.轻量的可嵌入式脚本语言,由标准的 ANSI C 实现,由于拥有一组精简的强大特性,以及容易使用的 C API,这使得它可以很容易嵌入或扩展到其他语言中使用,并且有个非官方认领的中文名 -- "撸啊". 安装 Lua Lua 安装很简单,把源码下载下来后,直接 make 就行: 复制代码 代码如下: wget http://www.lua.org/ftp/lua-5.2.2.tar.gz tar -zxvf lua-5.2.2.tar.gz cd lua-5
-
Lua学习笔记之表达式
前言 这里总结的内容和其它语言的基本类似,所以这里就只是基本的进行总结.不做详细的讲解. 算术操作符 Lua支持常规的算术操作符有:"+"(加法),"-"(减法),"*"(乘法),"/"(除法),"^"(指数),"%"(取模),一元的"-"(负号).所有的这些操作符都用于实数.例如:x^0.5将计算x的平方根,x^3将计算x的3次方. 关系操作符 Lua提供的关系操作
-
Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
赋值语句 注释,单行用(--)来表示:多行用(--[[ ... ]])来标示: 定义,lua中没有定义(申明数据类型),它是通过赋值来确定其数据类型的. 赋值,是改变一个变量的值和改变表域的最基本的方法. a = "hello" .. "world" Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量.a, b = 10, 2*x <--> a=10; b=2*x 遇到赋值语句Lua会先计算右边所有的
-
详解Lua中的数据类型
Lua是动态类型语言,所以变量没有类型,仅值有类型.值可以被存储在变量中,作为参数传递,并作为结果返回. 在Lua中虽然我们没有变量的数据类型,但我们有类型的值.用于数值数据类型的列表在下面给出. 函数类型 在Lua中有一个叫做函数类型,使我们能够知道变量的类型.如下一些例子给出了下面的代码. 复制代码 代码如下: print(type("What is my type")) --> string t=10 print(type(5.8*t))
-
Lua教程(三):表达式和语句
一.表达式: 1. 算术操作符: Lua支持常规算术操作符有:二元的"+"."-"."*"."/"."^"(指数)."%"(取模),一元的"-"(负号).所有这些操作符都可用于实数.然而需要特别说明的是取模操作符(%),Lua中对该操作符的定义为: 复制代码 代码如下: a % b == a - floor(a / b) * b 由此可以推演出x % 1的
-
Lua学习笔记之数据类型
从本篇博客开始研究一下Lua,现在的Lua真得是很火,因为Cocos2d-x写游戏的时候会用到,所以就拿过来学学吧,先从基础的语法开始,然后慢慢的深入.本人也是刚刚学习,希望和学习Lua的大家交流,博客权当笔记,有错误之处还请赐教. 当然首先是开发环境了,我的学习背景是Cocos2d-x,所以下载了最近发布的Cocos Code IDE版本,我们可以在Cocos Code IDE上边新建工程,然后写Lua测试代码,关于Cocos Code IDE的使用官方有不少的教程,这里就不说了.当然你也可以
-
Lua表达式和控制结构学习笔记
算术操作符 Lua 的算术操作符有: "+"(加法): 复制代码 代码如下: print(1 + 2) "-"(减法): 复制代码 代码如下: print(2 - 1) "*"(乘法): 复制代码 代码如下: print(1 * 2) "/"(除法): 复制代码 代码如下: print(1 / 2) "^"(指数): 复制代码 代码如下: print(27^(-1/3)) "%"(取模)
-
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中数据类型的源码分享
概述 在Lua中有8种基础类型:nil.boolean.number.string.userdata.function.thread和table.可以使用函数type查看某个变量或值的类型,返回相应的类型名称.像其他动态语言一样,在语言中没有类型定义的语法,每个值都携带了它自身的类型信息.下面将通过Lua 5.2.1的源码来看类型的实现. 源码实现 Lua将值表示成带标志的联合结构,代码如下(lobject.h): 90 /* 91 ** Union of all Lua values 9
-
Lua中的操作符和表达式总结
前言 这里总结的内容和其它语言的基本类似,所以这里就只是基本的进行总结.不做详细的讲解. 算术操作符 Lua支持常规的算术操作符有:"+"(加法),"-"(减法),"*"(乘法),"/"(除法),"^"(指数),"%"(取模),一元的"-"(负号).所有的这些操作符都用于实数.例如:x^0.5将计算x的平方根,x^3将计算x的3次方. 关系操作符 Lua提供的关系操作
随机推荐
- 详解易语言中的数据类型
- Go并发编程实践
- 详解JDK中ExecutorService与Callable和Future对线程的支持
- java中排序报:Comparison method violates its general contract异常的解决
- 对JavaScript的eval()中使用函数的进一步讨论
- 帝国CMS留言板回复后发送EMAIL通知客户
- PHP在线书签系统分享
- MySQL数据库 1067错误号的解决方法
- 简单说说PHP优化那些事(经验分享)
- linux awk时间计算脚本及awk命令详解
- 详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
- 一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
- BBSXP5.15跨站攻击漏洞
- C#中如何在Excel工作表创建混合型图表实例
- win2003 x64 apache php 开发环境配置日志
- java随机字符补充版
- Java 基础详解(泛型、集合、IO、反射)
- 探讨:如何使用委托,匿名方法对集合进行万能排序
- MoveWindow() SetWindowPos()的区别于联系
- 用React实现一个完整的TodoList的示例代码