红宝石的目的是什么|| =

时间:2012-08-19 06:18:54

标签: ruby

  

可能重复:
  What does ||= (or equals) mean in Ruby?
  RoR: Meaning of “user ||= User.new”

我在this Railscast中看到了它:

@current_user ||= User.find(session[:user_id]) if session[:user_id]

1 个答案:

答案 0 :(得分:1)

在Ruby中,我们可以编写以下代码来自行运行。

x += 1

这同样意味着

x = x + 1

在初始化过程中,我们希望仅在变量为零或不存在时才将初始值设置为变量。

例如,

a = a || initial_value

首先,评估左侧条件。 如果a被评估为false,则评估正确的条件,并为a分配initial_value。

而且,我们可以重写

a = a || initial_value

如下

a ||= initial_value