Lua 笔记--表达式
表达式用于表示值。Lua的表达式中可以包含数字常量、字面字符串、变量、一元和二元操作符及函数调用。另外有别于传统的是,表达式中还可以包括函数定义和table构造式。
Lua支持常规的算术操作符有:二元的+、-、*、/、^、%,及一元 - (负号)。取模操作符计算结果的符号永远与第二个参数相同。
Lua提供的关系操作符有:>、<、>=、<=、==、~=。所有这些操作符的运算结果都是true或false。
逻辑操作符有and、or 和not 。与条件控制语句一样,所有的逻辑操作符将false 和nil 视为假,其他视为真。对于操作符and 来说,如果它的第一个操作数为假,就返回第一个操作数,不然返回第二个操作数。对于操作符or 来说,如果它的第一个操作数为真,就返回第一个操作数,不然返回第二个操作数。
print(4 and 5) -->5 print(nil and 3) -->nil print(false and 3) -->false print(4 or 5) -->4 print(false or 5) -->5
print(not nil) -->true print(not false) -->true print(not 0) -->false print(not not nil) -->false
要在Lua中连接两个字符串,可以使用操作符“.."(两个点)。如果其任意一个操作数是数字的话,Lua会将这个数字转换成一个字符串:
print("Hello ".."World") -->Hello World print(0 ..1) -->01
请记住,Lua中的字符串是不可变的值。连接操作符只会创建一个新的字符串,而不会对其原操作数进行任何修改。
Lua操作符的优先级如下所示(从高到低):
^ not # -(一元负号) * / % + -(二元减号) .. < > <= >= ~= == and or
在二元操作符中,除了指数操作符”^“和连接操作符”..“是”右结合“的,所有其他操作符都是”左结合“的。
构造式是用于创建和初始化table的表达式。
days = {"M", "T", "W", "T", "F", "S"} print(days[1]) -->M
a = {x=1, y=2} --等价于 a={}; a.x=1; a.y=2
polyline = {color="blue", t=4, {x=0, y=1}} print(polyline[3].x) -->0
在构造式中还可以用分号代替逗号。通常会将分号用于分隔构造式中不同的成分:
{x=0, y=1; "one", "two"}
Lua 笔记--表达式相关推荐
- Lua笔记-关于lua table的C API
//Lua笔记-关于lua table的C API //转载请注明来自yuliying的CSDN博客. //Lua版本5.2 /*相关API: ====lua_createtable 原型: void ...
- lua笔记之local
lua笔记之local 最近使用lua语言遇到一个小问题,这里要记录一下 lua 中使用 local 的变量,例如: function testLocal()print(a, b)a = 10086l ...
- lua笔记1 基础概念
基础概念 Lua的变量默认是全局的,如果想要清除,只需要设置为nil.没有赋值的变量也是nil.注意lua是动态语言,变量不需要声明类型,而且自动类型转换. b = 1 print(b) b = ni ...
- 脚本语言lua笔记(5)c++调用lua
首先搭建环境,使用vs2010的c++开发工具,lua源码包,可以去官方下载最新源码包,我采用的是lua-5.1.5的版本.好了,开始配环境. 第一步: 下载源码包后,解压lua-5.1.5源码包到硬 ...
- Lua笔记——4.Package
module简介: Lua 5.1 加入模块管理机制module,类似于Java的packages.C++的namespaces,可以通过require用于加载模块,module用于创建模块.requ ...
- 表达式树 php,Linux_LINQ学习笔记:表达式树,构建查询表达式
本节中, 我们 - phpStudy...
构建查询表达式 本节中, 我们假设我们拥有一个这样的实体类: 1: [Table] public partial class Product 2: 3: { 4: 5: [Column(IsPrima ...
- Lua笔记4 闭包、迭代器
闭包 首先,明确闭包的概念.个人理解,一个闭包是一个封闭的数据和状态集合,闭包在创建的时候,可以捕获包外的数据,然后在包内会有一个数据副本,闭包内数据的生命周期随着闭包的结束而结束.在lua中,闭包是 ...
- Lua笔记3 函数和数组
函数 这里主要介绍可变参数函数,使用...表示可变参数函数. function add( ... )local s = 0for i, v in ipairs{...} do -- {...}表示可变 ...
- Lua笔记2 变量、循环和流程控制
变量 变量使用前必须声明,lua的变量默认全局的,哪怕该变量在函数中.局部变量使用local进行声明,仅在作用域中有效.函数中声明的变量,在函数调用前是不会起作用的. 代码示例: function f ...
- lua笔记之userdata
1.一直使用框架里封装好的c库,想着自己一点一点的写些例子,学习下,以后需要c库,可以自己写了. 下边是一个简单的userdata的例子--数组操作. newarray.c #include &quo ...
最新文章
- php 判断是否gzip,PHP网站判断页面文件或图片是否经过gzip压缩
- 全文检索、数据挖掘、推荐引擎系列5---文章术语向量表示法
- android double转string_Java 数组转 List 的三种方式及对比
- OpenGL MSAA多重采样抗锯齿的实例
- 【Angular】MVVM
- oracle和sql server取第一条记录的区别以及rownum详解
- 从GAN到WGAN到LipschitzGA
- rmdir命令--Linux命令应用大词典729个命令解读
- 需要写的一些pycoe
- Django:ORM基本操作-CRUD,管理器对象objects,----->查询3(单条更新,批量更新)
- C# 线程间互相通信
- 如何在 Azure 虚拟机里配置条带化
- javamailsender注入失败_使用Spring3.x框架的java mail支持来发送邮件
- emc测试e3软件系数导入,EMC测试标准
- 安卓的短信记录导入苹果_如何把安卓系统的短信导入苹果手机
- 方向传感器新的替代方法详解
- 微信答题小程序开发遇到过的坑
- python钉钉扫码登录程序_钉钉扫码登录网站(两种方式实现)
- OS学习笔记-21(清华大学慕课)文件系统
- PPT中如何将图片灰化(黑白化)
热门文章
- 我是如何在GitHub上开源一个项目的(截图说明) (VS2010可以安装git插件)
- Intel 平台编程总结----SIMD技术
- 【VS2010学习笔记】【异常处理】general error c1010070: Failed to load and parse the manifest.
- Machine Learning——Homework 7
- CSS学习总结(5)——列表/表格/链接/鼠标光标样式
- 【Python读文件】'gbk' codec can't decode byte 0xb1 in position 5: illegal multibyte sequence
- SARscape操作:Sentinel-1 SLC影像镶嵌、裁切
- java中包定义_java中包的定义与使用
- mysql如何管理事务管理_浅谈MySQL事务管理(基础)
- Android仿京东、天猫app的商品详情页的布局架构, 以及功能实现