Полное руководство: перечисление всех переменных в области видимости Ruby

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

Метод 1: использование local_variables
Метод local_variablesвозвращает массив символов, представляющих имена всех локальных переменных в текущей области.

def method_one
  var_one = 10
  var_two = 'Hello'
  var_three = [1, 2, 3]
  puts local_variables
end
method_one

Выход:

[:var_one, :var_two, :var_three]

Метод 2: использование instance_variables
Метод instance_variablesвозвращает массив символов, представляющих имена всех переменных экземпляра в текущей области.

class MyClass
  def initialize
    @var_one = 10
    @var_two = 'Hello'
    @var_three = [1, 2, 3]
  end
  def print_instance_variables
    puts instance_variables
  end
end
my_obj = MyClass.new
my_obj.print_instance_variables

Выход:

[:@var_one, :@var_two, :@var_three]

Метод 3: использование class_variables
Метод class_variablesвозвращает массив символов, представляющих имена всех переменных класса в текущей области действия.

class MyClass
  @@class_var_one = 10
  @@class_var_two = 'Hello'
  @@class_var_three = [1, 2, 3]
  def print_class_variables
    puts class_variables
  end
end
my_obj = MyClass.new
my_obj.print_class_variables

Выход:

[:@@class_var_one, :@@class_var_two, :@@class_var_three]

Метод 4: использование global_variables
Метод global_variablesвозвращает массив символов, представляющих имена всех глобальных переменных в текущей области.

$global_var_one = 10
$global_var_two = 'Hello'
$global_var_three = [1, 2, 3]
puts global_variables

Выход:

[:$global_var_one, :$global_var_two, :$global_var_three]

В этой статье мы рассмотрели несколько методов перечисления переменных в разных областях видимости в Ruby. Используя local_variables, instance_variables, class_variablesи global_variables, вы можете легко получать доступ к переменным и работать с ними внутри соответствующих переменных. области действия.