Moped::Collection
个对象实例之间存在明显差异。 Item.collection
对象的检查如下(添加了行结尾):
#<Moped::Collection:0x007fb381e3ed10
@database=#<Moped::Database:0x007fb381e3fa30
@name="production_datagatherer",
@session=<Moped::Session
seeds=[
<Moped::Node resolved_address="22.22.22.22:43700">,
<Moped::Node resolved_address="22.22.22.22:43700">
]
database=production_datagatherer
>
>,
@name="items"
>
Item.collection
Moped::Collection
对象具有以下实例变量:
@database: Moped::Database object
@name: "items"
@database
变量的格式为#<Moped::Database:0x007fb381e3fa30
,而@session
实例变量的格式为Moped::Session
,但格式不同。
@session
的值不是对象吗? seeds
和database
),它会有什么样的变量。答案 0 :(得分:1)
实际上要简单得多。
Moped::Session
implements inspect
method
def inspect
"<#{self.class.name} seeds=#{cluster.seeds} database=#{current_database_name}>"
end
这就是它看起来与众不同的原因。默认情况下,inspect
包含与Moped::Collection
一样的实例变量。
inspect
方法打印对象时,会调用 p
方法,或将其返回到控制台。您可以阅读inspect
here