Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
谁能解释一下下面的简单语句
@object ||= ::Tablename.where (:fieldname => value ).first
它是什么意思,为什么在表名之前||使用=和使用?::
||
=
::
该片段检查是否@object是false或nil;如果是,则将调用Tablename顶级命名空间中命名的方法所产生的值分配给它。
@object
false
nil
Tablename
这是因为||=意思是“如果值当前是假的,则赋值”;并且::是范围解析运算符。它通常在左侧出现一个类名,就像Net::HTTP访问模块中的HTTP常量一样。Net左边没有名字,意思是“在顶级范围内”。
||=
Net::HTTP
HTTP
Net