В чем разница между постоянными переменными и глобальными переменными?Разница между постоянными переменными и глобальными переменными
CONSTANT = 100
$global = 100
Я прочитал это question, но я не могу понять.
В чем разница между постоянными переменными и глобальными переменными?Разница между постоянными переменными и глобальными переменными
CONSTANT = 100
$global = 100
Я прочитал это question, но я не могу понять.
Глобальные переменные являются глобальными, что означает, что даже если вы поместите их в класс, который очень специфичен для области, они все еще доступны повсюду. Они также явно являются переменными (что не должно удивлять, если меняется их значение).
Например:
module TopLevel
module MiddleLevel
module LowLevel
class SpecificSomething
$my_global = "duff man says a lot of things"
end
end
end
end
module TopLevel
def self.global
p $my_global
end
end
TopLevel.global
#=> "duff man says a lot of things"
Константы доступны, где они определены - то есть, они не являются глобальными. Они также являются константами (поскольку ссылка, которую вы указали, указывает), поэтому НЕ ожидайте, что они изменятся (хотя рубин действительно позволяет их изменять).