我已经运行了以下代码,我不知道它是做什么的。为什么他们使用=
来比较值,还是他们分配值并在分配后检查值是否为真?
if value = (key rescue nil)
..
end
这相当于:
value = key rescue nil
if value
..
end
要么
value = begin
key
rescue
nil
end
if value
..
end
记住nil
和false
是红宝石中falsey
的唯一两个对象,因为value
在这里可能是nil
,如果声明可以返回false
。