j'ai une classe rubis de base:Ruby: définition de hachage de niveau de classe avec des valeurs par défaut
class LogEntry
end
et ce que je voudrais faire est de pouvoir définir un hachage avec quelques valeurs comme ceci:
EntryType = { :error => 0, :warning => 1, :info => 2 }
afin que je puisse accéder aux valeurs comme celui-ci (ou quelque chose de similaire):
LogEntry.EntryType[:error]
est-ce possible dans Ruby? Est-ce que je vais à ce sujet dans le bon sens?
Alors que cela importe seulement si la première lettre est en majuscule ou non, je crois qu'il est plus idiomatique Ruby d'utiliser ENTRY_TYPE au lieu de EntryType pour une constante. CamelCase est généralement utilisé pour les noms de modules et de classes uniquement. – nertzy
Aussi, si vous ne voulez pas que l'objet Hash soit modifié sur place, vous voudrez faire ENTRY_TYPE = {: error => 0,: warning => 1,: info => 2} .freeze – nertzy