0

谁能解释一下下面的简单语句

@object ||= ::Tablename.where (:fieldname => value ).first 

它是什么意思,为什么在表名之前||使用=和使用?::

4

1 回答 1

1

该片段检查是否@objectfalsenil;如果是,则将调用Tablename顶级命名空间中命名的方法所产生的值分配给它。

这是因为||=意思是“如果值当前是假的,则赋值”;并且::是范围解析运算符。它通常在左侧出现一个类名,就像Net::HTTP访问模块中的HTTP常量一样。Net左边没有名字,意思是“在顶级范围内”。

于 2012-12-18T10:30:09.153 回答