Skip to main content

runes

In Dart vertegenwoordigen runes de Unicode-codepunten van een string. Unicode is een universele standaard voor de codering van tekens die door alle talen en symbolen worden gebruikt. Graphemes vertegenwoordigen visueel waarneembare tekens die uit één of meer Unicode-codepunten kunnen bestaan.

Basisgebruik van Runes

Een rune in Dart is een int-waarde die een Unicode-codepunt vertegenwoordigt. Je kunt Unicode-tekenreeksen maken met behulp van de speciale syntax \uXXXX, waarbij XXXX de hexadecimale waarde van het codepunt is.

Voorbeeld:

void main() {
  String hart = '\u2665'; // Hartteken
  String lach = '\u{1f606}'; // Lachende emoji

  print(hart); // Output: ♥
  print(lach); // Output: 😆
}

In dit voorbeeld wordt het hartteken weergegeven met \u2665 en de lachende emoji met \u{1f606}.

Werken met Unicode-karakters

Als je met individuele Unicode-karakters wilt werken, kun je de runes eigenschap van een string gebruiken. Dit geeft een iterable terug van de Unicode-codepunten.

Voorbeeld:

void main() {
  String hallo = 'Hallo';
  Runes runes = hallo.runes;

  for (int rune in runes) {
    print(rune);
  }
}

Dit voorbeeld drukt de Unicode-codepunten van de string “Hallo” af.

Graphemes

Graphemes zijn visueel waarneembare tekens die kunnen bestaan uit één of meer Unicode-codepunten. De characters package in Dart kan worden gebruikt om graphemes te manipuleren.

Voorbeeld:

import 'package:characters/characters.dart';

void main() {
  String hi = 'Hi 🇩🇰';
  print(hi); // Output: Hi 🇩🇰
  print('The end of the string: ${hi.substring(hi.length - 1)}'); 
  print('The last character: ${hi.characters.last}'); //The end of the string: �
The last character: 🇩🇰

}

In dit voorbeeld wordt de characters package gebruikt om de laatste grapheme van de string correct af te drukken.

Speciale tekens en rauwe strings

In Dart kun je speciale tekens in een string gebruiken door escape-sequenties te gebruiken. Deze beginnen met een backslash (\). Als je wilt voorkomen dat backslashes als escape-sequenties worden geïnterpreteerd, kun je een rauwe string maken door een r voor de string te zetten.

Voorbeeld:

void main() {
  String specialeTekens = 'Nieuwe regel: \nTab: \tBackslash: \\';
  print(specialeTekens);

  String rauweString = r'Geen speciale behandeling: \n \t \\';
  print(rauweString);
}

Dit voorbeeld toont het gebruik van escape-sequenties en rauwe strings.