Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: instance, class, global

Чем отличаются переменные, начинающиеся с @, @@ и $?

Вопрос проверяет понимание различных типов переменных в Ruby и их областей видимости.

Короткий ответ

  • @ — переменная экземпляра, принадлежащая объекту.

  • @@ — переменная класса, общая для всех экземпляров класса.

  • $ — глобальная переменная, доступная из любого места программы.

Длинный ответ

Переменные экземпляра (@):
Сохраняют состояние внутри объекта и не доступны вне объекта напрямую. Они уникальны для каждого экземпляра класса.

class Person  
  	def initialize(name)  
    		@name = name  
  	end  

  	def name  
    		@name  
  	end  
end  

Переменные класса (@@):
Хранят общие данные, которые разделяются между всеми экземплярами класса.

class Counter  
  	@@count = 0  

  	def initialize  
    		@@count += 1  
  	end  

  	def self.count  
    		@@count  
  	end  
end  

Глобальные переменные ($):
Доступны в любом месте программы, но их использование может усложнить отладку и поддержку кода.

$global_var = "I am global"  

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    4

Навыки

  • Ruby

    Ruby

Ключевые слова

#instance

#class

#global

Подпишись на Ruby Developer в телеграм