Runes and Enumeration
In Dart, runes and enumerations are both useful constructs, albeit quite different. Let’s explore each of them with examples:
1. Runes
What are Runes?
Runes represent Unicode scalar values in Dart, which allow you to work with individual characters beyond the basic ASCII range.
Example:
Here’s how you can use runes in Dart:
void main() { // Define a rune for the heart symbol ❤ (Unicode: U+2764) var heartRune = '\u2764'; // Output the rune and its code point print('Heart Rune: $heartRune'); print('Heart Rune Code Unit: ${heartRune.runes.single}'); // Accessing individual code units (runes) in a string var coffee = '☕'; print('Coffee Rune: $coffee'); print('Coffee Rune Code Units: ${coffee.runes.toList()}'); }
void main() { final c1 = '\u{1F9F6}'; final c2 = '\u{1FA86}'; final c3 = '\u26C4'; final c4 = '\u{1F37A}'; print(c1); print(c2); print(c3); print(c4); print(c3.codeUnits); print(c4.codeUnits); }
2. Enumerations (Enums)
What are Enums?
Enums (short for enumerations) in Dart are a way to define a collection of constants, often used to represent a fixed number of possible states or choices.
Example:
Here’s how you can define and use enums in Dart:
// Define an enum for different days of the week enum Day { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } void main() { // Using enums to declare variables Day today = Day.Wednesday; // Switch statement using enums switch (today) { case Day.Monday: print('It\'s Monday!'); break; case Day.Wednesday: print('It\'s Wednesday!'); break; case Day.Friday: print('It\'s Friday!'); break; default: print('It\'s neither Monday, Wednesday, nor Friday.'); } }
Enums are for defining a fixed set of related constants, whereas lists are for managing ordered collections of items.