Ruby имеет 5 областей видимости переменных:
x = 25
, y = gaurish
, где x
и y
— локальные переменные.@
перед фактическим именем переменной. в основном используется с классами, так что каждый экземпляр/объект класса имеет другое/отдельное значение. пример.@employee.name = 'Alex'
@@
перед именем переменной. переменная класса, я думаю, что она имеет одинаковое значение для всех экземпляров/объектов.$
и доступны везде . пример$LOAD_PATH
ALL_CAPS
. хотя это константа, но ее значение непостоянно и может быть изменено, (ruby выдаст предупреждение, хотя ). так что в этом смысле это также действует как переменная.Как вы могли заметить, все вышеперечисленное является переменными, которые хранят некоторое значение определенного типа, и их значение может быть изменено. Но,каждый прицел делает что-то немного другое. Наличие 5 различных типов областей видимости меня чертовски смущает. В основном мне трудно решить, в каком случае я должен использовать конкретную область в своем коде. поэтому у меня есть некоторые вопросы в моей голове. пожалуйста ответьте:
global $x
переменные в PHP. Глобальные переменные в ruby также считаются злом и поэтому не должны использоваться. ИЛИ есть конкретные случаи, когда имеет смысл использовать глобальные переменные в ruby?public
в java? Какой вариант будет безопасным в большинстве случаев использования -?Спасибо, что нашли время прочитать и ответить на вопрос