2014-11-20 4 views
1

Мне было интересно, почему H в глобальном масштабе в https://github.com/antirez/lamernews/blob/master/app.rb? Вы можете видеть, что это определено в строке 53, используемой в строке 77, и вывести по строке 127 в https://github.com/antirez/lamernews/blob/master/page.rb.Sinatra/Ruby Scope Issue

Любой совет мудреца будет очень благодарен!

ответ

1

Поскольку константы, имеющие название ведущей заглавной буквы, доступны в любом месте класса или модуля, в котором они определены, а снаружи используются ведущие ::.

+0

Рассматривается ли это как переменная класса? В этом коде ему присвоен объект, который является динамическим. Почему должна использоваться константа, а не переменная класса? – Cenoc

+0

@Cenoc Я не уверен; вероятно, не так, как я бы это сделал. Я имею в виду, что вы всегда назначаете объект константе, и вы всегда можете мутировать состояние константы (и получать предупреждение, если пытаетесь изменить саму ссылку). –