У меня есть программа, которая выглядит следующим образом:
$offset = Point.new(100, 200);
def draw(point)
pointNew = $offset + point;
drawAbsolute(point)
end
draw(Point.new(3, 4));
использование $offset
кажется немного странным.
В C, если я определяю что-то вне какой-либо функции, это автоматически глобальная переменная. Почему в Ruby это должно быть $offset
, но не может быть offset
и все же быть глобальным? Если это offset
, то это местный? Но местный, где, потому что он чувствует себя очень глобальным.
Есть ли лучшие способы написания кода выше? Поначалу использование $offset
может показаться немного уродливым.
Обновление: я могу поместить это смещение в определение class
, но что, если два или несколько классов должны использовать эту константу? В этом случае мне все еще нужно определить $offset
?