lua中定义变量用and和or连接
最近在写代码中看到lua定义变量有local a = value1 and value2的操作,有些疑问,在此记录一下:
当连接两个操作数时,
1、对于运算符and,假设它的第一个操作数为假,就返回第一个操作数,否则返回第二个操作数
注:lua中只视nil和false为假,其它所有都为真,包括0也为真
例:
local a = 3 and 2
--都为真返回第二个操作数,返回2
local a = nil and 2
--前假后真返回第一个操作数,返回nil
local a = 2 and nil
--前真后假返回第二个操作数,返回nil
local a = false and nil
--都为假返回第一个操作数,返回false
2、对于运算符or,假设它的第一个操作数为真,就返回第一个操作数,否则返回第二个操作数
例:
local a = 2 or 3
--都为真,返回第一个数,返回2
local a = nil or 2
--前假后真返回第二个操作数,返回2
local a = 2 or nil
--前真后假返回第一个操作数,返回2
local a = false or nil
--都为假返回第二个操作数,返回nil
3、and连接多个操作数时,返回从左至右第一个为假的操作数,若都不为假,返回最后一个操作数
4、or连接多个操作数时,返回从左至右第一个为真的操作数,若都不为真,返回最后一个操作数
lua中定义变量用and和or连接的更多相关文章
- case中定义变量
1.c语言switch/case中定义变量 case 0: int b = 0 ; printf("0");break; case 1: printf("1" ...
- (转载)JavaScript中定义变量
(转载)http://blog.163.com/xuxiaoqianhz@126/blog/static/165190577201061594421870/ JavaScript中定义变量有两种方式: ...
- JavaScript 中定义变量时有无var声明的区别
关于JavaScript中定义变量时有无var声明的区别 var a=5; //正确 a=5; //正确 在javascript中,以上两种方法都是定义变量的正确方法.微软的Script56.CHM中 ...
- 不要在.h文件中定义变量
今天在头文件.h中初始化了一个数组和函数,在编译的时候提示这个数组和函数重新定义了,检查后发现,犯了一个致命的错误,在头文件中定义变量... 以下引用别人的一篇说明,警示自己. C语言作为一种结构化的 ...
- css中定义变量
css中定义变量 定义变量可分多种情况: 1.定义全局变量 :root { --borderColor: #ccc;} 2.定义某元素下的变量 .look{ --borderColor: #ccc;} ...
- [Linux][C][gcc][tips] 在头文件中定义变量引发的讨论
概述 本人的原创文章,最先发表在github-Dramalife-note中.转载请注明出处. Define variable(s) in header file referenced by mult ...
- ansible中定义变量的若干方法
Ansible支持十几种定义变量的方式 根据优先级排序的定义方式: Inventory变量 Host Facts变量 Playbook变量 Playbook提示变量 变量文件 命令行变量 1.Inve ...
- shell中定义变量用双引号和单引号以及不用引号的区别
1. 单引号 使用单引号的情况下,不管里面的是否有变量或者其他的表达是都是原样子输出 2. 双引号 如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双 ...
- 在properties.xml中定义变量,在application.xml中取值问题
如果为application.xml中的变量赋默认值,同时又在properties.xml中变量赋值,而加载后是取不到properties.xml中的值的问题. 解决这个问题需要加上黑体部分配置: & ...
- js中定义变量的三种方式const,val,let 的区别
js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始 ...
随机推荐
- 【Java】Object
Object转Map import com.alibaba.fastjson.JSON; import com.runsky.utils.JsonUtils; String objectToJson ...
- speedtest测速
wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py chmod a+rx speedtest.py mv speed ...
- HJ92 在字符串中找出连续最长的数字串
描述 输入一个字符串,返回其最长的数字子串,以及其长度.若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置) 本题含有多组样例输入. 输入描述: 输入一个字符串. 输出描述: 输出字符串中 ...
- 优化多if和else语句
可以利用对象来进行映射 比如 let type = this.radio_value if (type === 'whole') { this.time_value = [] } else if (t ...
- CentOS7桥接网络设置(小白向)
配置过程 查看网卡设备名:输入ifconfig 可以看到网卡设备名是ens32 注:不同版本网卡设备名是不一样的 进入到默认文件路径,输入:cd /etc/sysconfig/network-scri ...
- TCP三次握手四次挥手内容及步骤
TCP特性 1.工作在传输层 2.面向连接的协议 3.全双工协议 4.半关闭 5.错误检查 6.将数据打包成段,排序 7.确认机制 8.数据恢复.重传 9.流量控制.滑动窗口 10.拥塞控制,慢启动和 ...
- SAP S/4HANA Cloud的功能亮点以及大中型企业为何更倾向选择它
SAP-System Applications and Products,是一家来自德国的大型跨国软件公司,成立于1972年.作为全球企业管理和协同化商务解决方案供应商,世界第三大独立软件供应商和全球 ...
- 我们后端代码这样子设置虽然这样子返回的是字符串,但是json字符串也是字符串
我们后端代码这样子设置虽然这样子返回的是字符串 但是json字符串也是字符串,后端如果想接收的话,直接百度下怎么接收json字符串就行
- java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
你设置的主键里面已经有一个值为1的数值了,再插入一个就重复了. 但是主键是不能重复的.
- 自定义select组件
(声明:当前记录篇参考于该人员 https://www.jb51.net/article/166679.htm ) 一.创建组件 1.新建文件夹:select 2.新建Component: selec ...