lua --- 逻辑运算符小结

lua中的逻辑运算符,认为只有false、nil为假,其他的都为真(包括0、空串)

a and b     -- 如果a为false,则返回a,否则返回b
a or b     -- 如果a为true,则返回a,否则返回b

1 print(4 and 5)           --5
2 print(nil and 12)        --nil
3 print(false and 13)      --false
4 print(4 or 5)            --4
5 print(false or 5)        --5

一个很实用的技巧:如果x为false或者nil则给x赋初始值v

x = x or v

等价于

if not x then
    x = v
end

C语言中的三元运算符

a ? b : c

在Lua中可以这样实现:

(a and b) or c

原文地址:https://www.cnblogs.com/luguoshuai/p/10051820.html

时间: 2024-08-30 17:33:27

lua --- 逻辑运算符小结的相关文章

LUA逻辑运算符OR的使用

function CheckValue(str_value, int_value) local msg; --逻辑运算符的使用 if (int_value < 0) or (str_value == ' ') then msg = 0; else msg = 1; end return msg; end in_str = io.read(); in_int = 1; status = CheckValue(in_str, in_int); if status == 1 then print(&quo

第2课 Hello, Lua!

1. Lua脚本引擎 (1)Lua使用标准的ANSI C进行开发 (2)Lua几乎支持所有平台 (3)Lua是开源且免费的软件(http://www.lua.org) (4)Lua以源码的方式直接发布 2. Lua代码的目录结构 (1)doc:文档目录,对当前版本进行说明(编译,安装-) (2)src:源码目录,包含所有Lua源文件 (3)Makefile (4)README 3. Lua源码编译后的目标 (1)Lua:解释器,用于解释执行脚本或字节码文件(由luac编译得到的是字节码文件) (

Lua逻辑and和or的设计和三目运算符

Lua逻辑运算符认为 false 和 nil 是为 false,其他为 true.and和or的运算结果不是 true 和 false,而是和它的两个操作数相关. 即:a and b:如果 a 为 false,则返回 a,否则返回 b a or b:如果 a 为 true,则返回 a,否则返回 b lua三目运算符写法是,a and b or c这里有个问题,就是当b是nil的时候会返回c的值. 版权声明:本文为博主原创文章,未经博主允许不得转载.

扩展Unity3D编辑器的脚本模板

??最近在学习Shader时感觉Shader语言参数众多.语法诡异,如果每次都从头开始写Shader一定是一件痛苦的事情.如果可以在本地定义好一组标准的Shader模板,这样当我们需要实现某些效果类似的Shader时,就可以在这个Shader模板的基础上进行修改.因为Shader文件是一个文本文件,所以我们可以非常容易地创建这样一个模板,在这个模板中我们可以进一步完善相关的参数注释,这样就不用每次写Shader的时候都需要查文档了,从这个角度出发,就进入了这篇文章的正题:扩展Unity3D编辑器

Lua的require和module小结

Lua的require和module小结  module特性是lua5.1中新增的,用于设置Lua文件自己的模块,最常用的方式是module(name,package.seeall),有时候lua文件名和module设置的名字不一样,到底require的时候该 require文件名还是require模块(module)名了,今天自己试了一把  首先,如果在lua文件中不显示的require,那么lua运行环境会默认加载哪些呢? 可以通过遍历package.loaded数组来查看,包括以下  st

lua中的逻辑运算符

逻辑运算符也是3个,and,or,not,只是不是返回false和true,只有false和nil表示假,其他的都是真 and and使用短路运算,a and b,如果a为假,结果已经定了,返回a假,否则返回b,返回的也代表结果 or or也使用短路运算,a or b,如果a为真,返回b,不计算b,否则返回b 运用: x=x or v,if not x then x =v (a and b) or c,如果b是真的话,等于a?b:c max=(x>y) and x or y,取x和y中的较大者.

lua中的闭包小结

function newCounter() local i=0 return function() i=i+1 return i end end c1=newCounter() print(c1()) print(c1()) 以上代码输出1,2闭包=函数+引用环境.上述代码中的newCounter函数返回了一个函数,而这个返回的匿名函数就是闭包的组成部分中的函数,引用环境就是变量i所在的环境.实际上,闭包只是在形式和表现上像函数,但实际上不是函数,我们都知道,函数就是一些可执行语句的组合体,这些

[nginx] 由Lua 粘合的Nginx生态环境-- agentzh tech-club.org

[nginx] 由Lua 粘合的Nginx生态环境-- agentzh tech-club.org 演讲听录 [复制链接] kindle LT管理团队 Rank: 9Rank: 9Rank: 9 未绑定新浪微博 签到222 注册时间1970-1-1最后登录2015-6-5在线时间168 小时阅读权限200积分19025帖子119主题35精华2UID9223 LT总司令 LT元老 LT教授 串个门加好友打招呼发消息 电梯直达跳转到指定楼层 1# 发表于 2013-1-12 12:43:47 |只看

【quick-cocos2d-x】Lua 语言基础

版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速便捷了许多,下文只是lua这门语言的一个基础知识点,没有涵盖整个Lua的内容,但是作为对lua入门的初步了解还是可以的,由于内容精简了不少,所以语言上可能会有点跳跃,但是问题不大. 要了解一门语言,首先要了解的是语言的标识符.保留字.常量和变量,命名规范和注释以及数据类型等.然后是运算符.控制流语句