Dart biedt speciale ondersteuning voor verschillende ingebouwde types die veelvoorkomende gegevensstructuren en waarden vertegenwoordigen. Hieronder vind je een overzicht van deze ingebouwde types en hoe je ze kunt gebruiken.
- Numbers int, double (
int,double) - Strings (
String) - Booleans (
bool) - Records (
(value1, value2)) - Lists (
List, ook wel bekend als arrays) - Sets (
Set) - Maps (
Map) - Runes (
Runes) - Symbols (
Symbol) - The value null (
Null)
Numbers (getallen)
int
Een int is een gegevenstype dat gehele getallen vertegenwoordigt. Dit kunnen positieve, negatieve of nulwaarden zijn. Enkele basisbewerkingen zijn optellen, aftrekken, vermenigvuldigen, delen en bitwise bewerkingen.
Voorbeeld:
Meer informatie over int vind je hier.
double
Een double vertegenwoordigt decimale getallen. Dit type wordt gebruikt voor getallen die een fractie kunnen hebben, zoals 3.14.
Voorbeeld:
Meer informatie over double vind je hier.
Strings
Een String in Dart is een reeks tekens die tekst vertegenwoordigt. Strings kunnen worden omgeven door enkele of dubbele aanhalingstekens en ondersteunen interpolatie.
Voorbeeld:
Meer informatie over String vind je hier.
Booleans
Een bool type vertegenwoordigt een boolean waarde, die true of false kan zijn.
Voorbeeld:
Meer informatie over String vind je hier.
Records
Een Record is een gegevensstructuur die meerdere waarden kan bevatten. In Dart kun je records gebruiken om meerdere gerelateerde waarden te groeperen.
Meer informatie over Record vind je hier.
Lists
Een List (ook wel array genoemd) is een geordende verzameling van elementen. Een lijst kan elementen van elk type bevatten en heeft methoden om elementen toe te voegen, te verwijderen en te manipuleren.
Voorbeeld:
Dart biedt verschillende methoden en eigenschappen voor het werken met lijsten, zoals het toevoegen, verwijderen en vinden van elementen.
Meer informatie over Lists vind je hier.
Sets
Een Set is een ongeordende verzameling van unieke elementen. Dit type biedt methoden voor het controleren of een element aanwezig is, en het toevoegen of verwijderen van elementen.
Voorbeeld:
Meer informatie over Set vind je hier.
Maps
Een Map is een collectie van sleutel-waardeparen. Zowel de sleutels als de waarden kunnen van elk type zijn, en elke sleutel moet uniek zijn.
Voorbeeld:
Meer informatie over Map vind je hier.
Runes en graphemes
In Dart, runes onthullen de Unicode code points van een string. Je kunt de characters package gebruiken om te werken met user-perceived characters, oftewel Unicode (extended) grapheme clusters.
Voorbeeld:
import 'package:characters/characters.dart';
void main() {
var hi = 'Hi 🇩🇰';
print(hi);
print('The last character: ${hi.characters.last}');
}Meer informatie over runes vind je hier hier
Symbols
Een Symbol object vertegenwoordigt een operator of identifier die in een Dart-programma is gedeclareerd. Dit type wordt vaak gebruikt in APIs die verwijzen naar identifiers op naam.
Voorbeeld:
Null
De waarde null vertegenwoordigt de afwezigheid van een waarde of een niet-geïnitialiseerde variabele. In Dart kun je variabelen expliciet initialiseren met null.
Voorbeeld:
Uri
URI’s worden gebruikt om webadressen en andere resource-identifiers te representeren. Hier is hoe je met URI’s kunt werken in Dart:
Het maken en ontleden van URIs
Datum en Tijd
Dart biedt krachtige mogelijkheden om met datums en tijden te werken.
Basisgebruik van DateTime
Het werken met Duration
Andere speciale types
Future
Een Future is een object dat het resultaat van een asynchrone operatie vertegenwoordigt. Als je iets hebt dat tijd nodig heeft om te voltooien, zoals het ophalen van gegevens van het internet, gebruik je een Future om het resultaat te krijgen zodra het klaar is.
Codevoorbeeld:
Stream
Een Stream levert opeenvolgende stukken data over de tijd. Dit is handig wanneer je gegevens hebt die in stukjes binnenkomen, zoals live prijsupdates of berichten in een chatapp.
Codevoorbeeld:
Enum
Een Enum helpt je om een set gerelateerde constanten te definiëren. Dit is handig voor keuzes die beperkt zijn tot een bepaalde lijst, zoals de statussen van een bestelling (nieuw, in behandeling, voltooid).
Codevoorbeeld:
Iterable
Een Iterable is een collectie van items die je kunt doorlopen. Dit type wordt gebruikt voor objecten waarover je wilt itereren, zoals een lijst van getallen of namen.
Codevoorbeeld:
Never
Never is een speciaal type in Dart dat aangeeft dat een stuk code nooit een waarde zal teruggeven en altijd een fout zal veroorzaken of oneindig zal lopen.
Codevoorbeeld:
dynamic
Het dynamic type in Dart kan worden gebruikt voor een variabele die een waarde van elk type kan bevatten. Het wordt vaak gebruikt wanneer de type-informatie niet bekend is tijdens het schrijven van de code. Het gebruik van dynamic schakelt de type-checks van Dart uit, waardoor je meer flexibiliteit krijgt maar ook minder veiligheid.
Codevoorbeeld:
void
In Dart wordt void gebruikt om aan te geven dat een functie niets teruggeeft. Het is handig wanneer je wilt benadrukken dat de functie alleen acties uitvoert zonder een waarde terug te geven. Het wordt vaak gebruikt in callbacks en andere functies die effecten hebben (zoals printen naar de console of het updaten van een UI), maar die geen informatie doorgeven aan de aanroeper.
Codevoorbeeld:
Future<String> loadUserData() {
// Stel je voor dat dit een netwerkverzoek is dat 2 seconden duurt
return Future.delayed(Duration(seconds: 2), () => 'Gebruikersdata geladen');
}
void main() async {
print('Data ophalen...');
String data = await loadUserData();
print(data); // Prints 'Gebruikersdata geladen' na 2 seconden
}Object
Object is de basisklasse voor alle Dart klassen. Elk type in Dart is een subtype van Object, tenzij het expliciet wordt aangeduid als Null. Het gebruik van Object als type geeft aan dat een variabele letterlijk elk type object kan bevatten, vergelijkbaar met dynamic, maar met behoud van enige type veiligheid.
Codevoorbeeld: