Что такое масштаб?

Область видимости — это доступность определенных данных в вашем коде. Где вы пишете свои переменные и методы в своем коде, определяет, где вы можете использовать эти переменные и методы.

Взгляните на этот пример

Здесь мы объявили переменную color со значением строки «синий». Затем мы определяем метод Favorite_color с параметром (цвет), который принимает аргумент (цвет).

1 — Мы должны спросить, являются ли переменная, объявленная с именем, цветом, значением «синий», и метод с переменной (цвет), переданной в качестве параметра, одинаковы?

2 — Что мы должны ожидать на выходе, если мы вызовем/вызовем метод favourite_color и передаем строковый аргумент «красный»?

Будет ли это «Мой любимый цвет — синий» или «Мой любимый цвет — красный»?

Если вы сказали, что результатом будет «Мой любимый цвет — красный», вы правы.

Но почему?

Хорошо, чтобы ответить на вопрос 1 и объяснить вопрос 2. Они не одинаковы. Причина в том, что переменная color со значением строки «синий» является переменной в локальной области видимости и не может быть обнаружена методом favourite_color. Это связано с тем, что методы в Ruby создают свою собственную область видимости, а локальные переменные, созданные вне метода, не будут доступны внутри метода.

Для дальнейшего объяснения справиться выше. Переменная (цвет), переданная в качестве параметра в методе favourite_color, является всего лишь заполнителем, который принимает один аргумент. В этом примере аргумент, переданный в метод, Favorite_color("красный"), представляет собой строку "красный". Таким образом, выводится строка «Мой любимый цвет — красный».

Переменная имени, цвета со значением «синий» находится в локальной области видимости и нигде в нашем коде не используется.

Однако, если мы хотим использовать переменную имени, цвета со значением строки «синий» в методе, favourite_color. Нам нужно будет передать переменную имени, цвета со значением «синий» в метод Favorite_color в качестве параметра/аргумента и вызвать/вызвать его с (цветом) в качестве аргумента. Все это будет выглядеть примерно так.

Обратите внимание, как мы теперь вызываем/вызываем метод Favorite_color с переменной имени, цвета, со значением строки «синий» в качестве аргумента, и мы получаем на выходе строку «Мой любимый цвет, синий». Где, как и раньше, мы передавали аргумент строки «красный» при вызове/вызове метода Favorite_Color.

Чтобы узнать больше об области действия локальных переменных Ruby, обратитесь к документации по Ruby, перейдя по этой ссылке (https://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/localvars.html). Надеюсь, это было полезно. Спасибо за чтение.