Tengo un programa que se parece a:¿Cómo se usan variables globales o valores constantes en Ruby?
$offset = Point.new(100, 200);
def draw(point)
pointNew = $offset + point;
drawAbsolute(point)
end
draw(Point.new(3, 4));
el uso de $offset
parece un poco raro.
En C, si defino algo fuera de cualquier función, que es una variable global de forma automática. ¿Por qué en Ruby tiene que ser $offset
pero no puede ser offset
y seguir siendo global? Si es offset
, ¿es local? Pero local a dónde, porque se siente mucho global.
¿Hay mejores maneras de escribir el código anterior? El uso de $offset
puede parecer un poco feo al principio.
Actualización: Me puedo poner este desplazamiento dentro de una definición class
, pero lo que si dos o varias clases necesitan utilizar esta constante? En este caso, ¿todavía necesito definir un $offset
?
Si viene de C, puede que no sepa esto, pero no necesita poner puntos y coma al final de sus líneas en Ruby. Solo necesitas usar; para separar múltiples declaraciones en la misma línea, p. "a = 5; b = 10" – mikej