在 SO 和 Google 中搜索“ruby AboutClasses”都没有成功。
class Dog
end
fido = Dog.new
puts Dog.inspect
puts fido.inspect
结果是
AboutClasses::Dog
#<AboutClasses::Dog:0x6255f0>
你能解释一下吗:
- 术语
AboutClasses
是什么? - 第二个结果中的符号
#<xxxxx>
。我知道这是一个实例,但为什么要放在它#<>
周围呢?
在 SO 和 Google 中搜索“ruby AboutClasses”都没有成功。
class Dog
end
fido = Dog.new
puts Dog.inspect
puts fido.inspect
结果是
AboutClasses::Dog
#<AboutClasses::Dog:0x6255f0>
你能解释一下吗:
AboutClasses
是什么?#<xxxxx>
。我知道这是一个实例,但为什么要放在它#<>
周围呢?搜索 GitHub会产生一堆包含 的 Ruby 源文件require 'about_classes'
,它们都位于 ruby_koans 的分支中。
事实上,文件about_classes.rb文件包含一个名为 fido 的 Dog 类,位于名为AboutClasses
. 我猜你已经加载了这个类或正在执行它。
要回答您关于以下方面的具体问题#<AboutClasses::Dog:0x6255f0>
:
术语“AboutClasses”只是一个类或模块名。您可以嵌套它们,以便外部类或模块充当命名空间。这样,您的 Dog 类就不会与您加载的其他 gem 中的 Dog 类发生冲突。嵌套它们时,名称由 . 分隔::
。
符号#<ClassName:MemoryAddress>
只是一个符号。井号和尖括号只是为了将它与其他所有内容区分开来。