新手问题 请问 ||= 这个语法是什么意思呢

whitecrow · 2012年08月27日 · 最后由 whitecrow 回复于 2012年08月27日 · 3209 次阅读

在 Ruby 中常常可以看到这种语法:

def self.middleware
      @middleware ||= begin
      …… 
end

请问是什么含义?

如果 @middleware 有值,后面的就不会执行了

@middleware = @middleware || begin ... end

最常见的用法是拿来缓存表达式结果(即 begin ... end 只会第一次跑到)。当然对于 rails 来说,仅对同一 request 有效。

@huacnlee @ashchan 理解了,非常感谢 :)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号