DartBuilt-in TypesDartDart——
Dart——num``int``double``String``bool``List``Set``Map——
Dart num int double``num +``-``abs()``compareTo() List<num> List<int> List<double>
int double Dart VMint arbitrary-precision integer Java BigInteger Python int 3264
var large = 1 << 100; // Dart VM127 print(large); // 1267650600228229401496703205376
JavaScript Dart JS Dart int JavaScript number IEEE 754 -2^{53} + 1 2^{53} - 1 Number.MAX_SAFE_INTEGER
double IEEE 754 NaN``Infinity Dart float8/
1Dart
“”Dart“”——
String DartimmutableUnicodeDart ${expression}
DartUnicode String UTF-16code unitrunesUnicodecharacters characters “” UTF-16surrogate pairs codeUnitAt “” characters.length 1
String family = ''; print(family.length); // 11UTF-16 print(family.runes.length); // 7Unicode print(family.characters.length); // 1
Dart
Dart bool true falseJavaScript——“/”truthy/falsyDart bool if (someString) Dart if (someString.isNotEmpty)
“”“”bug
Dart——List``Set``Map——
List Dart List List<int> checked mode sound null safety [] Dart List List List.unmodifiable const [...]
Set Dart LinkedHashSet``HashSet SplayTreeSet``LinkedHashSet
Map LinkedHashMapPython 3.7+Dart Map Map ——
2Dart
Dart Dart VM int``double``bool “”unboxed int JIT
Dart StringBuffer
final buffer = StringBuffer(); for (var i = 0; i < 1000; i++) { buffer.write('item $i, '); } String result = buffer.toString();
List O(1)/ O(n)Set Map O(1) O(n)SplayTreeSet / O(\log n)“”——
Dart 2.12 Sound Null Safety“” String?``List<int>?“”
String name; print(name.length); // name
String? name; // // String name = 'Dart'; //
“”
Dart Dart 3.0 Records
(String, int) userInfo = ('Alice', 30); var (name, age) = userInfo; //
“”
DartPattern Matching
// switch (value) { case int i when i > 0: print(''); case String s when s.isEmpty: print(''); // ... }
Dart——num String Unicodebool Dart“”“”
WebDartDart
“” Dart