1

「ruby AboutClasses」で検索しても、SO でも Google でもヒットしません。

class Dog
end

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

結果は

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

説明してください:

  • 用語AboutClassesは何ですか?
  • 2番目の結果の表記#<xxxxx>。インスタンスであることは理解していますが、なぜそれを#<>囲むのですか?
4

1 に答える 1

5

GitHub を検索require 'about_classes'すると、ruby_koans のフォークにあるを含む Ruby ソース ファイルの束が得られます。

実際、ファイルabout_classes.rbファイルには、 という名前のクラス内に fido という名前のクラス Dog が含まれていますAboutClasses。このクラスをロードしたか、実行していると思います。

に関する特定の質問に答えるには#<AboutClasses::Dog:0x6255f0>:

  1. 「AboutClasses」という用語は、単なるクラスまたはモジュール名です。それらをネストして、外側のクラスまたはモジュールが名前空間のように機能するようにすることができます。そうすれば、あなたの Dog クラスは、ロードした他の gem の Dog クラスと衝突しません。それらをネストする場合、名前は で区切られ::ます。

  2. 表記#<ClassName:MemoryAddress>はあくまでも表記です。ハッシュマークと山かっこは、他のすべてのものと区別するためにあるだけです。

于 2012-05-17T17:42:03.710 に答える