2017-01-05 18 views
-1

クラス名のデータ型は?あるいは、この定数のクラスは何ですか?クラスやモジュールはルビで定数ですか?ルビのクラス名のデータ型(クラス)は何ですか?

class Abc 
end 

Abcとは何ですか?

+1

'Abc'は定数ですが、それもクラスなので、モジュールとオブジェクトです:-) – Stefan

+0

@Stefenは、他の多くのコメントがこれと矛盾しているので、いくつかの参照を分けてください。 – ancho

+4

確か: '定義されていますか? Abc#=> "定数"と 'Abc.is_a?クラス#=> true'と 'Abc.is_a? Module#=> true'および 'Abc.is_a? Object#=> true' – Stefan

答えて

1

したがって、この定数のデータ型は、つまり文字列、整数です。

クラスは、クラスClassのインスタンスです。

あなたは(他のオブジェクトと同じように、ちょうどそれに.classを呼び出す)ことを確認することができます。

Abc.class 
#=> Class 

は、一定のクラスやルビーでモジュールですか?

どちらもありません。定数は定数です。定数に値が割り当てられています。

+0

したがって、定数はルビの独立して定義されたエンティティですか? – ancho

+1

@anchoは「変数」とまったく同じです。 – Stefan

+1

クラスのクラスは 'Class'です。クラス名のクラスは通常 'String'、時には' Symbol'です。 – sawa

3

クラス名のデータ型は?

「クラス名」とはどういう意味ですか?クラスは本当にRubyに名前を持っていません。クラスにはnameメソッドがあり、クラスの人間が判読可能な名前をStringとして返します。

この定数のクラスは何ですか?クラスやモジュールはルビで定数ですか?

どちらもありません。定数はRubyではオブジェクトではないため、クラスはありません。 (これはほかの言語とほとんど同じです)

Abcとは何ですか?

クラスClassのオブジェクトを参照する定数です。

ところで、あなたは「タイプ」と「クラス」という言葉を同じ意味で使用していましたが、そうではありません。タイプとクラスは異なるものです。

+0

"AbcはClassクラスのオブジェクトを参照する定数です。"これはAbc定数がClassクラスのオブジェクト参照を保持していることを意味しますか? – ancho

+1

No。 'Abc'は、' Class'クラスの*インスタンスであるオブジェクトへの参照を保持します。 –

関連する問題