Ruby 想请教下 ||=与=的区别,||=是在什么情况下使用比较合适

yingjie_xiao · 2012年12月20日 · 最后由 doitian 回复于 2012年12月20日 · 2186 次阅读

想请教下||=与=的区别,||=是在什么情况下使用比较合适,请大侠帮帮忙

class MyMap def []=(key,value) @status ||= [] @status << {key,value} end

def item=@status.find{ |s|s.keys.first == key} item[key] end
end

m=MyMap.new m["key"] =123450 puts m["key"] 想请教下 item=@status.find{ |s|s.keys.first == key}中的 |s|s.keys.first == key 这个是什么用法

||=是空指针保护 a ||= 1 等同于以下代码

if a
  a
else
  a = 1
end

||= 经常用来做 cache,有些资源需要计算或者从外部去获取,你不想每次调用重复去计算或者连接数据库就用 ||=

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