Ruby: Tableau d'Objets/Classes
Je ne suis pas un expert ruby et ce qui me donne de la difficulté. Mais comment pourrais-je aller sur la création d'un tableau d'objets/classes en ruby? Comment initialiser/le déclarer? Merci d'avance pour l'aide.
C'est ma classe, et je veux créer un tableau de:
class DVD
attr_accessor :title, :category, :runTime, :year, :price
def initialize()
@title = title
@category = category
@runTime = runTime
@year = year
@price = price
end
end
depuis qu'il est dans une classe et je veux d'autres méthodes dans la classe pour y accéder, j'ai essayé: @@films = Array DVD.nouveau mais il a rapidement constaté que cela ne fonctionnait pas.
Vous voulez dire que vous souhaitez créer un tableau avec les instances de classe?
Vérifiez si c'est de l'aider: stackoverflow.com/questions/6365638/...
Vous voulez dire que vous souhaitez créer un tableau avec les instances de classe?
Vérifiez si c'est de l'aider: stackoverflow.com/questions/6365638/...
OriginalL'auteur Chris Cruz | 2013-01-26
Vous devez vous connecter pour publier un commentaire.
Ruby est un canard tapé (typage dynamique)
Et presque tout est un objet, de sorte que vous pouvez ajouter n'importe quel objet dans un tableau. Par exemple:
va créer un tableau avec 2 Dvd.
va ajouter le DVD de la matrice. De vérifier la L'API Ruby pour la liste complète des fonctions de tableau.
Btw, si vous voulez garder une liste de tous les DVD des instances dans le DVD de la classe, vous pouvez le faire avec une variable de classe, et l'ajouter à la pile lorsque vous créez un nouveau DVD de l'objet.
maintenant, si vous ne
vous pouvez obtenir la liste de tous les Dvd que vous avez créé jusqu'à présent:
nope, les blocs ne sont pas des objets 🙂 et c'est vrai à propos de la classe des variables d'instance...
Sauf vraiment les blocs sont des objets:
def f █ block; end; f {}
. Ce qui renvoie, bien, l'objet.Merci beaucoup, qui m'a vraiment aidé.
oui, comme ça, ils sont convertis à un proc, mais quand vous avez à céder pour elle, il n'est pas un objet 🙂 donc pas tout, mais presque tout est un objet.
OriginalL'auteur rik.vanmechelen
Afin de créer un tableau d'objets en Ruby:
Créer le tableau et le lier à un nom:
Ajouter vos objets:
Vous pouvez ajouter n'importe quel objet à un tableau, à tout moment.
Si vous souhaitez avoir accès à toutes les instances de la
DVD
classe, alors vous pouvez compter surObjectSpace
:Par ailleurs, les variables d'instance ne sont pas initialisé correctement.
L'appel de méthode suivant:
Crée automatiquement
attribute
/attribute=
méthodes d'instance pour obtenir et définir la valeur des variables d'instance.La
initialize
méthode, telle que définie:Définit les variables d'instance, malgré la prise d'aucun argument. Effectivement ce que qui se passe est:
attribute
lecteur méthode est appeléenil
nil
devient la valeur de la variableCe que vous voulez faire est de passer les valeurs des variables pour le
initialize
méthode:Aussi, si le seul attribut obligatoire est le
DVD
's le titre, alors vous pouvez le faire de cette façon:OriginalL'auteur Matheus Moreira
many_DVD = Array.new(2){DVD.new}
OriginalL'auteur Fanda