*Welcher Datentyp?
Eigentlich wollte ich mit Iteratoren weitermachen, aber es taucht immer wieder auf, dass mir die Verwendung von Datentypen nicht klar ist. Ich möchte hier ein wenig Brainstorming betreiben, um dieses Manko etwas beheben. Wie schon des öfteren erwähnt, kommen mir vor allem die komplexen Datentypen häufig irgendwie ähnlich vor. Rein nominell und was sie als Gesamtes ausdrücken, kann ich die Unterschiede schon erfassen, aber es fehlt vermutlich die Übung, um das zu konkretisieren.
Fassen wir mal zusammen, welche dieser Datentypen bereits vorgekommen sind(ich hoffe, dass ich jetzt nichts vergesse)
-Strings
-Vektoren
-Hashmaps
-Enums
-Strukturen
Huch, ich hoffe das waren jetzt alle, die ich hier durchgenommen habe. Am besten Schritt für Schritt.
-Strings kommen mir eigentlich ganz einfach vor. Im Prinzip ist es Text. Strings "ernähren" sich von Stringslices, das kommt am ehesten Textbausteinen gleich. Die Texte sind manipulierbar und lassen sich durchsuchen. Sie lassen sich nur durch .clone() kopieren.
-Vektoren sind quasi ein erweiterbares Array und Arrays sind Datencontainer, die nur einen Datentyp aufnehmen (können) -> jetzt wollte ich fast schreiben, wollen. Also, wofür brauch ich die? Pauschal, Daten, wo es nur einen sinnvollen Datentyp gibt. Eine Sammlung bestimmter Zahlenarten, Texte, Wahrheitswerte.
-Hashmaps bedeuten ein Paar aus Schlüssel und Wert oder mehreren Werten. Ein Wert (oder mehrere) können keinen Schlüssel besitzen nur umgekehrt. Schlüssel sind Unikate, Werte können mehrfach vorkommen.
-Enums beschreiben Zustände oder Eigenschaften von Objekten, wobei immer nur eines davon jeweils gebraucht wird. Also, was macht dieses eine Ding in diesem Objekt?
-Strukturen, beschreiben eine Sammlung von Informationen die ein Objekt beschreiben und das vor allem auf ähnliche Objekte wiederverwendbar ist.
Nehmen wir das mal als Basis. Beim Programmieren gibt es häufig nicht nur eine Lösung, aber meistens noch eine Bessere. Am liebsten würde ich die Strings für den Anfang mal auslassen.
Wenn ich mal über Vektoren und deren Verwendung nachdenke, dann fallen mir als erstes Kundennummern ein. Ist ja immer gut, wenn sich der Kundenstamm erweitert^^. Oder Finanztransaktionen, wo Geldbeträge eingetragen werden. Eine erweiterbare Einkaufsliste. Steuernummern, Versicherungsnummern. Teilnehmerliste mit unbekannter Anzahl an Gästen. Wartenummern im Krankenhaus. Produktnummerierung.
Nächster Versuch bei Hashmaps. Als erstes natürlich gleich mal Telefonbücher und Wörterbücher.Produktbeschreibungen/Leistungen. Haupt und Untergruppierungen. Aufklappbarer Text mit dazugehörigem Kontext.Theoretisch Stunden- und Minutenzeiger in zusammengehöriger Position. Produktdatenblatt.
Bei Enums hatte ich die Ampel als Beispiel. Vereinfacht überlegt, sind es vor allem digitale Zustände, die sich mit Enums beschreiben lassen. Ein Herd, wo die Temperatur digital eingestellt wird, oder eine Klimaanlage. Beim Autoradio der eingestellte Sender. Ein gedrückter Knopf auf einem Gerät, der Schalter auf einer Heizung.
Strukturen sind dann wohl so eine Art von Sammelbehälter, oder besser, eine Vorlage, für weitere ähnliche Objekte, welche gleichlautende Eigenschaften in sich beinhalten. Im Prinzip kann man damit jedes Objekt beschreiben, auch Lebewesen, wenn man will. Oder auch in Computerspielen.
Soweit, so gut. Wie bringt mich das jetzt weiter? Es geht mir darum, ein gewisses "Gefühl" für die richtige Verwendung von komplexen Datentypen zu bekommen. Letztlich wird es nur durch die Übung selbst kommen, aber ich bin jemand, der gerne über Dinge und deren Wirkung nachdenkt.