У меня есть программа, которая выглядит так:
$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
?