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

whitecrow · August 27, 2012 · Last by whitecrow replied at August 27, 2012 · 3216 hits

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

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

请问是什么含义?

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

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

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.