1

この種の割り当てのために追加のメソッドを作成する必要がありますか? @@variable = @global_variableなんで?値と定義を保持するいくつかの変数をスクリプト全体からアクセスできるようにし、定義の場所を 1 つだけにしたいと考えています。

@global_variable = 'test'

class Test

@@variable = @global_variable

  def self.display
    puts @@variable
  end
end

Test.display #gives nil
4

1 に答える 1

9

Ruby では、グローバル変数には.$ではなく. がプレフィックスとして付けられ@ます。

$global = 123

class Foo
    @@var = $global
    def self.display
        puts @@var
    end
end

Foo.display

正しく 123 を出力します。

あなたが行ったことは、インスタンス変数を Module クラスまたは Object クラスに割り当てることです (どちらかはわかりません)。そのインスタンス変数は、定義したクラスのスコープ内にありません。

于 2010-02-27T23:50:34.677 に答える