Loading...
 

Crystal Structs

Structs


Unter einem Struct versteht man eine Art Gruppe von verschiedenen Daten, die aber zusammen gehören. Man könnte einen Struckt auch als einfache Klasse (OOP) bezeichnen. Grundsätzlich kann man mit einer Klasse genau das Gleiche machen wie mit einem Struct. Jedoch ist der Zugriff auf Daten im Struct wesentlich schneller, da diese auf dem Stack verwaltet werden und nicht im Heap.

Legen wir einen Stuct für Farben an:

# Stuct für Farben anlegen
struct Farbe
    # Zugriff bereitstellen
    property r, g, b

    # Konstruktor mit den Farbwerten
    def initialize(@r : UInt8, @g : UInt8, @b : UInt8)
    end        
end

# einige Farben anlegen
rot = Farbe.new 255, 0, 0
blau = Farbe.new 0, 0, 255
gelb = Farbe.new 255, 255, 0

# Ausgabe und Modifikationsmöglichkeiten
p! rot
rot.r = 200_u8
p! rot.r
puts "Bei Gelb ist der Rotanteil: #{gelb.r}, Grünanteil: #{gelb.g}, Blauanteil:#{blau.r}"


Ausgabe:
rot # => Farbe(@r=255, @g=0, @b=0)
rot.r # => 200
Bei Gelb ist der Rotanteil: 255, Grünanteil: 255, Blauanteil:0