首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何记忆Ruby中可能返回true、false或nil的方法?

如何记忆Ruby中可能返回true、false或nil的方法?
EN

Stack Overflow用户
提问于 2012-06-22 23:09:30
回答 2查看 5K关注 0票数 16

显然,||=不会工作

def x?
  @x_query ||= expensive_way_to_calculate_x
end

因为如果结果是falsenil,那么expensive_way_to_calculate_x就会一遍又一遍地运行。

目前,我所知道的最好的方法是将值放入Array

def x?
  return @x_query.first if @x_query.is_a?(Array)
  @x_query = [expensive_way_to_calculate_x]
  @x_query.first
end

有没有更传统或更有效的方法来做到这一点?

更新我意识到除了false之外,我还想记住nil -这可以一直追溯到https://rails.lighthouseapp.com/projects/8994/tickets/1830-railscachefetch-does-not-work-with-false-boolean-as-cached-value -我向Andrew Marshall道歉,他给出了一个完全正确的答案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11158972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档