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

yingjie_xiao · December 20, 2012 · Last by doitian replied at December 20, 2012 · 2188 hits

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

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,有些资源需要计算或者从外部去获取,你不想每次调用重复去计算或者连接数据库就用 ||=

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