Datentypen in Dart: Kurz & Bündig

Total
0
Shares
Ein aufgeschlagenes Buch.
Bildquelle: Wendy van Zyl | /www.pexels.com/@wendy-van-zyl-312082

In der Welt der Programmierung begegnen wir oft dem Begriff “primitive Datentypen”, der Bilder von simplen, unteilbaren Dateneinheiten in unseren Köpfen malt. Dart, die Sprache hinter dem beliebten Flutter-Framework, fordert jedoch unser traditionelles Verständnis mit einem interessanten Ansatz heraus. In Dart gibt es keine “primitiven” Datentypen im herkömmlichen Sinne – stattdessen arbeiten wir mit Objekten und Interfaces. Lass mich das erklären und dir zeigen, wie Dart diese Konzepte handhabt.

Inhaltsverzeichnis Hide
  1. Datentypen in Dart

Datentypen in Dart

 

Null: Beginnen wir mit einem Typ, der oft übersehen wird – Null. Anders als in vielen anderen Sprachen ist Null in Dart ein eigenständiger Typ, der das Fehlen eines Wertes repräsentiert. Es ist wichtig zu verstehen, dass null nicht gleich “nichts” ist, sondern ein gültiger Zustand, der bewusst gehandhabt werden muss.

Int: Der int Typ ist wohl einer der ersten Datentypen, denen du begegnest. Er repräsentiert ganze Zahlen. Einfach ausgedrückt: Wenn du zählen kannst, kannst du int verwenden. Zum Beispiel: int age = 25; sagt klar aus, dass das Alter 25 Jahre beträgt.

Double: Jetzt wird es ein bisschen genauer. Double steht für Fließkommazahlen und kommt ins Spiel, wenn du mit Bruchzahlen arbeitest. Preisangaben sind ein klassisches Beispiel: double price = 3.99;.

Num: Num ist ein Überbegriff für numerische Typen in Dart und kann sowohl int als auch double Werte aufnehmen. Das macht num extrem flexibel für Berechnungen, bei denen du den spezifischen Typ nicht im Voraus kennst.

Bool: Bool ist der Typ für Wahrheitswerte in Dart. Er nimmt zwei Werte an: true oder false. Perfekt, um Ja-Nein-Entscheidungen in deinem Code zu treffen.

String: Text in Dart wird mit dem String Typ dargestellt. Alles, was du aussprechen oder schreiben kannst, kann ein String sein, wie zum Beispiel: String welcomeMessage = "Hallo Dart!";.

Function: Vielleicht überraschend, aber in Dart ist auch eine Funktion ein Objekt vom Typ Function. Das ermöglicht es, Funktionen als Variablen zu übergeben oder sie als Rückgabewerte zu nutzen.

Verständnistabelle

DatentypBeschreibungBeispiel
NullRepräsentiert das Fehlen eines Wertesint? lineCount = null;
IntGanze Zahlenint age = 25;
DoubleFließkommazahlendouble price = 3.99;
NumÜberbegriff für numerische Typennum x = 42;
BoolWahrheitswertebool isTrue = false;
StringTextString name = "Dart";
FunctionFunktionen als ObjekteFunction myFunc = () => print("Hallo Dart!");

Erweiterte Datentypen in Dart

Records: Neu in Dart (und möglicherweise in zukünftigen Updates stärker vertreten), ermöglichen Records, ähnlich wie Tuples in anderen Sprachen, die Gruppierung verschiedener Werte in einer einzigen Einheit. Sie sind perfekt, um eine kompakte, aber aussagekräftige Datenstruktur zu schaffen, ohne eine Klasse definieren zu müssen.

Lists: List in Dart entspricht dem Array-Konzept aus anderen Sprachen. Listen sind geordnete Sammlungen von Objekten. Du kannst List<int> ages = [25, 30, 35]; verwenden, um eine Liste von Ganzzahlen zu definieren. Listen sind dynamisch, was bedeutet, dass ihre Größe zur Laufzeit geändert werden kann.

Sets: Ein Set in Dart ist eine Sammlung einzigartiger Objekte. Im Gegensatz zu Listen, wo Duplikate erlaubt sind, enthält ein Set jeden Wert nur einmal. Das macht Sets ideal, um sicherzustellen, dass eine Sammlung keine doppelten Werte enthält, z.B. Set<String> names = {'Max', 'Anna'};.

Maps: Map ist Darts Antwort auf Schlüssel-Wert-Paare. Jeder Schlüssel in einer Map ist einzigartig und verweist auf genau einen Wert. Maps sind unverzichtbar, wenn es darum geht, Datenstrukturen zu organisieren, die eine einfache Zuordnung erfordern, wie z.B. Map<String, int> phoneBook = {'Max': 123456, 'Anna': 654321};.

Runes: Runes repräsentieren Unicode-Zeichen in Dart. Da Dart Strings als Sequenz von UTF-16 Code-Einheiten behandelt, werden Runes verwendet, um Unicode-Zeichen außerhalb des BMP (Basic Multilingual Plane) darzustellen. Für alltägliche Anwendungen kannst du jedoch oft direkt mit dem characters API arbeiten.

Symbols: Symbol wird in Dart verwendet, um einen Operator oder Bezeichner zu repräsentieren, der während der Laufzeit nicht verändert wird. Obwohl sie in der alltäglichen Dart-Programmierung selten verwendet werden, sind Symbole nützlich für APIs, die auf Reflexion basieren.

Mehr Informationen findest du in der Dart-Dokumentation.

FAQ

F: Wie wähle ich zwischen List und Set?
A: Entscheide dich für eine List, wenn die Reihenfolge der Elemente wichtig ist und Duplikate erlaubt sind. Wähle ein Set, wenn jedes Element einzigartig sein muss.

F: Kann ich die Typen von Elementen in einer Map mischen?
A: Ja, Dart erlaubt es dir, unterschiedliche Typen von Schlüsseln und Werten in einer Map zu haben, aber für die beste Praxis und Typsicherheit solltest du konsistente Typen verwenden.

F: Was sind die Vorteile von Runes in Dart?
A: Runes ermöglichen es dir, Unicode-Zeichen präzise zu handhaben, insbesondere solche, die nicht im Standard-Unicode-Bereich liegen. Dies ist besonders wichtig für die Darstellung von Emojis oder speziellen Symbolen.

F: Muss ich immer den genauen Datentyp in Dart definieren?
A: Dart ist intelligent genug, um Typen automatisch zu inferieren, aber eine explizite Definition hilft, deinen Code klar und verständlich zu machen.

F: Kann ich Typen in Dart konvertieren?
A: Ja, Dart bietet Konvertierungsmethoden, wie z.B. .toString(), um einen int in einen String zu verwandeln, oder int.parse(), um einen String in einen int zu konvertieren.

F: Wie gehe ich mit null in Dart um?
A: Dart unterstützt Null-Sicherheit, was bedeutet, dass du Variablen als null kennzeichnen musst, wenn sie keinen Wert enthalten dürfen. Das wird mit einem Fragezeichen (?) nach dem Typ angegeben, z.B. int? age;.

Bildquelle:
Wendy van Zyl | /www.pexels.com/@wendy-van-zyl-312082

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Wenn dir der Artikel gefallen hat:
Was hältst du von diesem Thema? Der Informatikstudent ist ein kleiner Blog und für mich ein Hobbyprojekt. Du kannst mich unterstützen, in dem du diesen Beitrag teilst, auf deiner Website verlinkst oder einen Kommentar schreibst. Für dich ist es nur ein kurzer Aufwand, aber mir zeigt es, dass dir der Blog gefällt. Das motiviert mich, mehr Artikel zu schreiben. Schau dich auch gerne nach weiteren Artikeln auf dem Blog um. Vielleicht hilft dir ja noch etwas weiter?

- Daniel
Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Was dir auch gefallen könnte