Ruby中的双&符号

前端之家收集整理的这篇文章主要介绍了Ruby中的双&符号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Ruby on Rails的authlogic gem,我一直在使用以下内容获取当前登录用户的id:
current_user = UserSession.find
id = current_user && current_user.record.id

我不明白current_user&& current_user.record.id返回当前用户ID.我认为这将返回一个布尔值.谁能解释一下这是如何工作的?

解决方法

逻辑和短路.这意味着如果构造是X&& Y和X是假的,然后Y永远不会被检查,因为整个事情肯定会产生错误.

代码基本上是这样说的:

if (current_user is TRUE) {
    id = current_user.record.id;
]

这里有一些控制台输出显示如果第一个值为真,你得到第二个值:

irb(main):005:0> true && 9
=> 9

如果第一个是零,则为零:

irb(main):008:0> nil && 9
=> nil

猜你在找的Ruby相关文章