Dart heeft een (nieuwe) feature genaamd “records”, die werd geïntroduceerd in versie 3.0. Records bieden een manier om meerdere gerelateerde waarden als een enkele eenheid te groeperen zonder een speciale klasse te definiëren.
Wat is een Record in Dart?
Een record in Dart is een samengestelde datatype waarmee je meerdere waarden kunt groeperen. Records zijn niet-veranderlijk en kunnen zowel gepositioneerde als geneste velden bevatten.
Definiëren van een Record
Je kunt een record definiëren door waarden tussen haakjes te plaatsen.
void main() {
// Een record met twee gepositioneerde velden
var persoon = ('Alice', 30);
// Een record met benoemde velden
var locatie = (latitude: 52.3791, longitude: 4.8994);
print(persoon); // Output: (Alice, 30)
print(locatie); // Output: (latitude: 52.3791, longitude: 4.8994)
} Toegang krijgen tot Record-velden
Je kunt toegang krijgen tot de velden van een record met behulp van zowel de gepositioneerde als de benoemde veldnamen.
void main() {
var persoon = ('Alice', 30);
var locatie = (latitude: 52.3791, longitude: 4.8994);
// Toegang krijgen tot gepositioneerde velden
print(persoon.$1); // Output: Alice
print(persoon.$2); // Output: 30
// Toegang krijgen tot benoemde velden
print(locatie.latitude); // Output: 52.3791
print(locatie.longitude); // Output: 4.8994
}Records met verschillende typen velden
Records kunnen velden van verschillende typen bevatten.
void main() {
var gemengdRecord = ('Bob', 25, true, 180.5);
print(gemengdRecord.$1); // Output: Bob
print(gemengdRecord.$2); // Output: 25
print(gemengdRecord.$3); // Output: true
print(gemengdRecord.$4); // Output: 180.5
}Records als functie-parameters en -retourwaarden
Records kunnen worden gebruikt als parameters en retourwaarden van functies.
// Functie die een record retourneert
(String, int) getPersoon() {
return ('Charlie', 40);
}
// Functie die een record als parameter accepteert
void printPersoon((String, int) persoon) {
print('Naam: ${persoon.$1}, Leeftijd: ${persoon.$2}');
}
void main() {
var persoon = getPersoon();
printPersoon(persoon); // Output: Naam: Charlie, Leeftijd: 40
}Samenvatting
Records in Dart bieden een handige manier om meerdere gerelateerde waarden samen te groeperen zonder een aparte klasse te definiëren. Je kunt records definiëren met gepositioneerde en benoemde velden, toegang krijgen tot de velden, en ze gebruiken als parameters en retourwaarden in functies.