他のクラス定義の "default"スコープでvarにアクセスするにはどうすればよいですか?"デフォルト"スコープの変数にアクセスする方法
var = 1
class MyClass
def self.show
var
end
MyClass.show #=> 1
とところで、私は「デフォルト」範囲のリターンmain
で自己に気づく、これは何ですか?
他のクラス定義の "default"スコープでvarにアクセスするにはどうすればよいですか?"デフォルト"スコープの変数にアクセスする方法
var = 1
class MyClass
def self.show
var
end
MyClass.show #=> 1
とところで、私は「デフォルト」範囲のリターンmain
で自己に気づく、これは何ですか?
これはできません。 var = ...
のように定義された変数は、常にローカル変数です。
グローバル変数の定義は、$var = ...
によって行われます。
別のよりハックのアプローチは、インスタンス変数(@var = ...
)を定義することになるが、これは何とか仕事の価値があるとは思えない、あなたのMyClass.show
にmain
インスタンスを取得するためにあなたを必要とします。
確かに良い方法があると思いますが、Rubyを初めて使用しているので、var
の代わりに$var
を使用します。そうすることでグローバルになります。 :-)
したがって、mainはObjectのインスタンスですか? – mko
Rubyのすべてが 'Object'のインスタンスです。インスタンス変数やメソッドなどをアタッチすることができます。しかし、別のオブジェクトのインスタンスを参照するのはかなりハッキリです。私はそれほど奇妙な何かをする正当な理由を見ることができません。 – Koraktor
私はルビーのコンセプトを深く理解する必要があります。ありがとう – mko