7

次のコードを含む test1.rb という名前のファイルがあるとします。

my_array = [1, 2, 3, 4 5]

次に、irb を実行し、irb プロンプトを取得して「require 'test1'」を実行します。この時点で、my_array にアクセスできることを期待しています。しかし、次のようなことをしようとすると...

puts my_array

irb は、「my_array」が未定義であることを教えてくれます。「my_array」にアクセスする方法はありますか

4

4 に答える 4

8

このような:

def my_array
    [1, 2, 3, 4, 5]
end
于 2010-09-25T12:51:21.857 に答える
2

スクリプトを要求し、他のいくつかの方法でそのデータにアクセスすることもできます。ローカル変数にはアクセスできませんが、メソッド定義と同様に、これらの他の 3 つのデータ型はスコープ内でアクセスできます。

MY_ARRAY = [1, 2, 3, 4 5] #constant
@my_array = [1, 2, 3, 4 5] #instance variable
@@my_array = [1, 2, 3, 4 5] #class variable
def my_array # method definition
  [1, 2, 3, 4 5]
end
于 2015-11-08T19:36:23.583 に答える
1

いいえ、ありません。ローカル変数は、それらが定義されているスコープに対して常にローカルです。そのため、結局のところ、ローカル変数と呼ばれます。

于 2010-09-25T13:42:23.533 に答える
1

irb で:

  eval(File.read('myarray.rb'),binding)

または、irb にドロップすることもできます

于 2010-09-26T02:44:48.960 に答える