首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >||= (或-equals)在Ruby语言中是什么意思?

||= (或-equals)在Ruby语言中是什么意思?
EN

Stack Overflow用户
提问于 2009-06-15 11:25:13
回答 16查看 135.3K关注 0票数 393

下面的代码在Ruby中是什么意思?

代码语言:javascript
复制
||=

它在语法上有什么意义或理由吗?

EN

回答 16

Stack Overflow用户

发布于 2014-01-11 20:52:11

简而言之,a||=b的意思是:如果aundefined, nil or false,则将b赋给a。否则,请保持a完好无损。

票数 30
EN

Stack Overflow用户

发布于 2016-06-05 09:47:53

基本上,

x ||= y均值

如果x具有任何值,请不要更改该值,否则将x设置为y

票数 18
EN

Stack Overflow用户

发布于 2009-06-15 11:30:54

它的意思是-等于。它检查左侧的值是否已定义,然后使用该值。如果不是,则使用右侧的值。您可以在Rails中使用它来缓存模型中的实例变量。

一个基于Rails的快速示例,其中我们创建了一个函数来获取当前登录的用户:

代码语言:javascript
复制
class User > ActiveRecord::Base

  def current_user
    @current_user ||= User.find_by_id(session[:user_id])
  end

end

它检查是否设置了@current_user实例变量。如果是,它将返回它,从而节省了数据库调用。但是,如果没有设置,我们进行调用,然后将@current_user变量设置为该值。这是一种非常简单的缓存技术,但对于在应用程序中多次获取相同的实例变量时非常有用。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/995593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档