GLBasic forum

Other languages => GLBasic - de => Topic started by: x-tra on 2007-Oct-28

Title: Noob und Types
Post by: x-tra on 2007-Oct-28
Ich hab mich bis jetzt erfolgreich um types gedrückt, und wohl auch darum weil ich zwar die funktionsweise ansatzweise verstanden habe, aber doch nicht so richtig.

Kann mir types nochmal kurz und knapp leicht verständlich erklären, vielleicht noch ein leichtes beispiel dazu.

wäre echt lieb
Title: Noob und Types
Post by: S.O.P.M. on 2007-Oct-28
Man kann ja sagen, mit TYPE definierst du eine Struktur von Variablen. Ist die Struktur definiert (TYPE ... ENDTYPE), dann erstellst du praktisch eine Variable mit dieser Struktur. GLOBAL Variablenname AS Strukturname. Lass es uns so ausdrücken: Die nun erstellte Variable besteht aus mehreren "Untervariablen". Jetzt kannst du darauf zugreifen. Variablenname.VariableInStruktur = ...
Und genauso wäre das dann bei einer Feldvariable. Jedes Feld enthält dann die gesamte Struktur.

Besser kann ich es im Moment leider nicht erklären, vielleicht hat es schon ein bisschen geholfen.
Title: Noob und Types
Post by: x-tra on 2007-Oct-28
deinem post entsprechend würde man sagen, man spart sich variablen wie shipspeed, shipcolor usw.

und würde stattdessen ship.speed   ship.color nehmen.

aber dies würde nur der übersicht dienen.
Title: Noob und Types
Post by: S.O.P.M. on 2007-Oct-28
Richtig. Man hätte damit einfach Variablen zusammengefasst. Eben in einer Struktur. Aber dies ist bereits ein guter Grund, die Types zu verwenden, denn angenommen, du hast in einem komplexeren Projekt an die 100 Variablen, dann ist es schon sehr schlecht, wenn die alle in einzelnen Zeilen völlig unübersichtlich mit GLOBAL definiert sind.
Title: Noob und Types
Post by: S.O.P.M. on 2007-Oct-28
Vielleicht wäre es gut, wenn du konkret beschreiben könntest, wo du bei den Types noch etwas nicht verstanden hast.
Title: Noob und Types
Post by: x-tra on 2007-Oct-28
ähm ausser dieser zusammenfassung, was ist noch ein grund für deren verwendung?

bzw. was für anwendungsgebiete oder features hat man noch dadurch?

wenn das das einzige wäre wegen der übersichtlichkeit, dann wäre das ja ganz easy.
Title: Noob und Types
Post by: S.O.P.M. on 2007-Oct-28
Es gibt auch viele Fälle, wo du dadurch deutlich weniger Code benötigst, um Gleiches zu erreichen. Es ist also auch viel bequemer. Außerdem sollen die Types wohl sehr schnell sein. Nehmen wir ein Beispiel mit Types in Kombination mit einer Feldvariable: Du hast ein Weltraumshooter und das Raumschiff soll Schüsse abfeuern. Jeder einzelne Schuss muss ja wenigstens die X und Y Koordinate beinhalten, wenn nicht auch noch den Winkel und evtl. die Gewschindigkeit. Nun könntest du gleich 4 Feldvariablen erstellen. X[], Y[], Winkel[] und Speed[]. Wird ein neuer Schuss abgefeuert, müsstest du die Dimension jedes einzelnen Feldes vergrößern. Schwachsinn! Nehmen wir doch gleich eine Feldvariable nur, in der jedes Feld X, Y, Winkel und Speed enthält. Schuss[IndexNr].X, Schuss[IndexNr].Y, Schuss[IndexNr].Winkel und Schuss[IndexNr].Speed. Nun brauchst du für einen Schuss nur einmal eine neue Dimension angeben und du hast gleich 4 neue Variablen, in der du die Daten für den neuen Schuss speichern kannst.
Title: Noob und Types
Post by: Schranz0r on 2007-Oct-28
ÖHMMMMMMMM

http://www.glbasic.com/forum/viewtopic.php?id=790

Man gucke mal ins Tutorialforum!
Title: Noob und Types
Post by: D2O on 2007-Oct-29
Noch was ganz wunderbares das man mit Types anstellen kann.
Viele wollen immer mehr als nur einen Wert aus einer function zurück geben, das geht an sich nicht, aber,
wenn man eine Function als Type deklariert kann man den kompletten inhalt eines Types zurück geben, eben also
mehrere Werte  :)
Title: Noob und Types
Post by: Kitty Hello on 2007-Oct-29
Und andersrum: Wenn ich ein TYPE an eine Funktion übergebe, dann übergebe ich eben die ganzen 100 Variablen auf einmal. Das macht die Programmierarbeit viel schneller. Besonders in Verbindung mit FOREACH
Title: Noob und Types
Post by: Schranz0r on 2007-Oct-29
*Zustimm beiden* :D Ist subba