class Struct

Die Klasse Struct bietet eine praktische Möglichkeit, eine einfache Klasse zu erstellen, die Werte speichern und abrufen kann.

Dieses Beispiel erstellt eine Unterklasse von Struct, Struct::Customer; das erste Argument, ein String, ist der Name der Unterklasse; die anderen Argumente, Symbole, bestimmen die Mitglieder der neuen Unterklasse.

Customer = Struct.new('Customer', :name, :address, :zip)
Customer.name       # => "Struct::Customer"
Customer.class      # => Class
Customer.superclass # => Struct

Jedem Mitglied entsprechen zwei Methoden, eine Writer- und eine Reader-Methode, die Werte speichern und abrufen.

methods = Customer.instance_methods false
methods # => [:zip, :address=, :zip=, :address, :name, :name=]

Eine Instanz der Unterklasse kann erstellt und ihre Mitglieder mit Werten zugewiesen werden, über die Methode ::new.

joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe # => #<struct Struct::Customer name="Joe Smith", address="123 Maple, Anytown NC", zip=12345>

Die Mitgliedswerte können so verwaltet werden:

joe.name    # => "Joe Smith"
joe.name = 'Joseph Smith'
joe.name    # => "Joseph Smith"

Und so; beachten Sie, dass der Mitgliedername entweder als String oder als Symbol angegeben werden kann.

joe[:name]  # => "Joseph Smith"
joe[:name] = 'Joseph Smith, Jr.'
joe['name'] # => "Joseph Smith, Jr."

Siehe Struct::new.

Was gibt es hier

Zuerst, was ist sonst noch. Klasse Struct

Siehe auch Data, ein etwas ähnliches, aber strengeres Konzept zur Definition unveränderlicher Wertobjekte.

Hier bietet die Klasse Struct Methoden, die nützlich sind für

Methoden zum Erstellen einer Struct-Unterklasse

Methoden zum Abfragen

Methoden zum Vergleichen

Methoden zum Abrufen

Methoden zum Zuweisen

Methoden zur Iteration

Methoden zur Konvertierung