about 1 year ago

这是 购物网站 第二周复盘笔记的疑问记录:关于 ||= 的疑问。

在实作 购物网站 5-4 Step 2 : 加入购物车代码 中出现这样一段代码:

app/controllers/application_controller.rb
  def current_cart
    @current_cart ||= find_cart
  end

其中 ||= 第一次碰到很是陌生,第一印象应该是一个运算符,但含义究竟是什么我猜不出。


教材中的解答是:

a ||= b 等于 a = a || b。意思是如果 a 是 nil 的话。 a 会被赋予 b 值。见下范例

a = nil
b = 20
a ||= b

a 会是多少?答案是20

所以

def current_cart
 @current_cart ||= find_cart
end

意思就是 @current_cart 是 nil 时会呼叫 find_cart 这个函式去判断消费者现在使用的是哪一台车。


参考资料:

李安同学的这篇博客非常详细!对于理解购物车的设计非常有帮助!真的太赞了!

← [学习笔记] session & cookie是做什么用的? [学习笔记] helper_method是什么? →
 
comments powered by Disqus