このファイルを「Ruby x.rb
」として実行すると、次のようになります。
class X
end
x = X.new
「X.new
」と呼んでいるものは何ですか?
それはオブジェクト/プロセス/その他ですか?
Rubyのすべては、あるオブジェクトのコンテキストで発生します。最上位のオブジェクトは「メイン」と呼ばれます。これは基本的に、そこで定義されたメソッドが追加される特別なプロパティを持つObjectのインスタンスです。 Objectのインスタンスメソッド(どこでも利用できるように)。
したがって、完全に次のもので構成されるスクリプトを作成できます。
puts object_id
@a = 'Look, I have instance variables!'
puts @a
「105640」と「見て、インスタンス変数があります!」と出力されます。
それはあなたが一般的に気にする必要があるものではありませんが、そこにあります。
最上位の呼び出し元は、クラスObjectのオブジェクトmainです。
これを試してくださいRubyプログラム:
p self
p self.class
Xクラスです。クラスXのオブジェクトを作成するメソッド "new"を呼び出しています。したがって、このテキストをスクリプトとして実行すると、Rubyは次のようになります。
new
は1つです。x
new
でX
メソッドを呼び出し、Xインスタンスオブジェクトを作成します。 xはそのオブジェクトへの参照を取得します。行を実行しているのはRubyインタプリタです
x = X.new
多くのスクリプト言語と同様に、スクリプトは、ほとんどのコンパイル言語のような標準のエントリポイントメソッドではなく、上から下に解釈されます。
チャーリー・マーティンが言ったように、X.newは、変数xに格納されているタイプXのオブジェクトを返すXクラスのコンストラクターの呼び出しです。
タイトルからすると、もう少し探していると思います。 Rubyはメインを必要とせず、表示された順序でコードを実行します。したがって、依存関係を呼び出す前に含める必要があります。
したがって、メインは、クラスまたはモジュール定義の外部で記述された手続き型コードです。