Comment utiliser des variables globales ou des valeurs constantes en Ruby?

J'ai un programme qui ressemble à:

$offset = Point.new(100, 200);

def draw(point)
  pointNew = $offset + point;
  drawAbsolute(point)
end

draw(Point.new(3, 4));

l'utilisation de $offset semble un peu bizarre.

En C, si je définir quelque chose en dehors de toute fonction, il est une variable globale automatiquement. Pourquoi Ruby-t-il $offset mais ne peut pas être offset et encore être global? Si c'est offset, alors c'est un local? Mais local où, parce qu'il se sent très bien mondiale.

Sont t-il de meilleures façons d'écrire le code ci-dessus? L'utilisation de $offset peut sembler un peu moche au premier abord.


Mise à jour: je peux mettre ce décalage à l'intérieur d'un class définition, mais que faire si deux ou plusieurs classes ont besoin d'utiliser cette constante? Dans ce cas, dois-je encore besoin de définir un $offset?

  • Venant de C, vous pourriez ne pas savoir cela, mais vous n'avez pas besoin de mettre de la semi-points sur la fin de vos lignes de Rubis. Vous avez seulement besoin d'utiliser, pour séparer plusieurs instructions sur la même ligne, par exemple "a = 5; b = 10"
InformationsquelleAutor nopole | 2009-06-25