Что означает создание переменной экземпляра, скажем, @foo
в файле вне определения любого класса.Скажем, есть файл test.rb, и все содержимое файла приведено ниже.
# test.rb
@foo = "bar"
puts @foo
Он печатает "bar"
, но является ли это переменной экземпляра в каком-то классе обёрток?
Тестирование с использованием двух файлов показывает, что существует объект main
, в который все обернуто.Является ли это понимание правильным?
Содержимое a.rb
@me = self
@a = "from-a"
Содержимое b.rb
require "./a"
@b = "from-b"
puts @me == self # true (self refers to the same object)
puts self.class # Object
puts self.instance_variables # [@a, @b, @me]