Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5199|回复: 2

[求助] 关于&&和||的问题

[复制链接]
发表于 2016-4-22 09:24:15 | 显示全部楼层 |阅读模式
罗老师,有问题:
3&&5 == 5,为什么?
关于&&和||操作符,它们都是逻辑操作符,应该是真假判断的,为什么skill输出不是t或者nil,而是3或者5?

发表于 2016-4-22 15:20:51 | 显示全部楼层
逻辑运算符
SKILL 将 nil 默认为是“假”,其它值都被认为是“真”。如果需要确定其返回值时,SKILL 将会返回其第二个参数的值。
简单的逻辑运算符
运算符
参数
函数
例子
返回值
&&
所有类型
and
3&&5
5&&3
t&&nil
nil&&t
t
t
nil
nil
||
所有类型
or
3||5
5||3
t||nil
nil||t
3
5
t
t
&& 和 || 运算符返回其最后一次计算的值。因此,&& 和 || 运算符可以用于避免 if 和 when 运算符赘余的表达式。


使用 &&
当 SKILL 创建一个变量时,将会附一个 unbound 初值给变量表明该变量还未初始化。可使用 boundp 函数判断一个变量是否是 bound。boundp函数具有以下功能:
┗如果变量为 bound ,返回 t
┗如果不是 bound ,返回 nil
假如你想返回变量 trMessages 的值,如果 trMessages 值是一个 unbound,结果将会产生一个错误,否则,使用以下表达式:
boundp( ‘trMessages ) && trMessages
使用 ||
假如你有一个默认名称,比如 noName。假如你有一个变量,比如 userName。如果userName是 nil ,那么就使用默认名称。可使用以下表达式:
userName || “noName”
发表于 2016-4-22 15:21:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-10-31 12:12 , Processed in 0.124874 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表