В Ruby область видимості змінної (також відома як область дії або контекст видимості) визначає, де можна використовувати та звертатися до даної змінної в програмі. Це пов’язано з тим, де змінна була оголошена та інкапсульована. Є кілька видів областей видимості в Ruby.
Локальна область видимості (Local Scope) - це змінні, оголошені в середині блоків, методів або інших конструкцій, що визначають локальний контекст, мають локальну область видимості. Вони доступні тільки в межах того блоку, методу чи іншого контексту, де вони були оголошені.
def example_method
x = 10
puts x
end
example_method
# puts x # Помилка, змінна x не доступна тут
Глобальна область видимості (Global Scope) - змінні, оголошені на рівні головної програми або визначені як глобальні, мають глобальну область видимості. Ці змінні доступні в усій програмі та можуть бути використані в будь-якій частині коду.
$global_variable = 20
def print_global_variable
puts $global_variable
end
print_global_variable # Виводить 20
Область видимості класу (Class Scope) - змінні, оголошені в класі або визначені як змінні класу (з префіксом @@
), мають область видимості класу. Вони доступні всередині класу та в усіх його методах.
class ExampleClass
@@class_variable = 30
def print_class_variable
puts @@class_variable
end
end
obj = ExampleClass.new
obj.print_class_variable # Виводить 30
Важливо враховувати області видимості при роботі з змінними в Ruby, оскільки неправильне їх використання може призвести до непередбачуваного поведінки програми.