【发布时间】:2011-02-28 17:05:04
【问题描述】:
我有一个关于 ruby 中的 ||= 语句的问题,这对我来说特别感兴趣,因为我正在使用它来写入内存缓存。我想知道的是,是否 ||= 在调用该设置器之前先检查接收器是否已设置,或者它实际上是 x = x || y 的别名
这在普通变量的情况下并不重要,但使用类似的东西:
CACHE[:some_key] ||= "Some String"
可能会进行比简单变量集更昂贵的内存缓存写入。奇怪的是,我在 ruby api 中找不到任何关于 ||= 的信息,所以我自己无法回答这个问题。
我当然知道:
CACHE[:some_key] = "Some String" if CACHE[:some_key].nil?
会实现这一点,我只是在寻找最简洁的语法。
【问题讨论】:
-
标题似乎对 ruby 不公平(作为生成的 slug)
-
@dzen 不确定您的意思?
-
阅读网址,卢克“is-ruby-intelligent”