доступ к переменным в загруженном источнике в IRB - PullRequest
6 голосов
/ 25 сентября 2010

Скажем, у меня есть файл с именем test1.rb со следующим кодом:

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

Затем я запускаю irb и получаю приглашение irb и запускаю "require 'test1'. В этот момент я ожидаю, что смогу получить доступ к my_array. Но если я попытаюсь сделать что-то вроде ...

puts my_array

irb говорит мне, что my_array не определено. Есть ли способ получить доступ к "my_array"

Ответы [ 4 ]

8 голосов
/ 25 сентября 2010

как это:

def my_array
    [1, 2, 3, 4, 5]
end
2 голосов
/ 08 ноября 2015

Вы также можете запросить свой скрипт и получить доступ к этим данным несколькими другими способами. Локальная переменная не может быть доступна, но эти три других типа данных могут быть доступны в области действия, аналогично определению метода.

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
1 голос
/ 26 сентября 2010

In irb:

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

Или вы можете опустить до 100 * *

1 голос
/ 25 сентября 2010

Нет, нет.Локальные переменные всегда локальны для области, в которой они определены. Поэтому они называются локальными переменными , в конце концов.

...