在Ruby中,AboutClasses类是什么?

时间:2012-05-17 17:30:37

标签: ruby

搜索'ruby AboutClasses'在SO和Google中都没有点击。

class Dog
end

fido = Dog.new
puts Dog.inspect
puts fido.inspect

结果是

AboutClasses::Dog
#<AboutClasses::Dog:0x6255f0>

你能解释一下:

  • 术语AboutClasses是什么?
  • 第二个结果#<xxxxx>中的表示法。我理解这是一个实例,但为什么要把#<>放在它周围?

1 个答案:

答案 0 :(得分:5)

Searching GitHub产生了一堆包含require 'about_classes'的Ruby源文件,所有这些文件都在ruby_koans的分支中。

实际上,文件about_classes.rb文件在名为AboutClasses的类中包含名为fido的类Dog。我猜你已经加载了这个类或正在执行它。

回答有关#<AboutClasses::Dog:0x6255f0>的具体问题:

  1. 术语“AboutClasses”只是一个类或模块名称。您可以嵌套它们,以便外部类或模块充当命名空间。这样,你的Dog类就不会与你加载的其他宝石中的Dog类冲突。嵌套时,名称由::分隔。

  2. 符号#<ClassName:MemoryAddress>只是一种表示法。哈希标记和尖括号就是将它与其他所有内容区分开来。