Noob und Types

Previous topic - Next topic

x-tra

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

S.O.P.M.

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.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

x-tra

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.

S.O.P.M.

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.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

S.O.P.M.

Vielleicht wäre es gut, wenn du konkret beschreiben könntest, wo du bei den Types noch etwas nicht verstanden hast.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

x-tra

ä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.

S.O.P.M.

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.
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Schranz0r

ÖHMMMMMMMM

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

Man gucke mal ins Tutorialforum!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

D2O

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  :)
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Kitty Hello

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

Schranz0r

*Zustimm beiden* :D Ist subba
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard