dart:core Standard Library

dart:core is Dart’s standard core library that gets implicitly imported automatically. It supplies fundamental capabilities required by the language. Below you’ll find core features and sample code grouped by module.

In other words, developers don’t need to write import statements manually; this library is loaded automatically.

1. Console Output

Top-level function print() automatically calls the object’s toString() method to print text.

void main() {
  var tea = "milk tea";
  print(tea);
  print('I drink $tea.');
}Code language: Dart (dart)

2. Numeric Types: num / int / double

  1. Inheritance: Both int and double extend num
  2. String to number conversion: parse(). int supports radix for different bases
  3. Number to string conversion:
  • toString(): Basic conversion
  • toStringAsFixed(n): Keep n decimal places
  • toStringAsPrecision(n): n significant digits
void main() {
  // 字符串转数字
  assert(int.parse('42') == 42);
  assert(int.parse('42', radix:16) == 66);
  assert(double.parse('0.5') == 0.5);

  // 数字转字符串
  assert(123.456.toStringAsFixed(2) == '123.46');
  assert(123.456.toStringAsPrecision(2) == '1.2e+2');
}Code language: Dart (dart)

3. Strings String & Regular Expressions RegExp

  • String is immutable (all modification methods return new strings); data is stored as UTF-16 code units
  • Common operations: search, substring, split, case conversion, whitespace trimming
void main() {
  var str = 'Never odd or even';
  // 查询
  assert(str.contains('odd'));
  assert(str.startsWith('Never'));
  assert(str.endsWith('even'));
  assert(str.indexOf('odd') == 6);

  // 截取、分割
  assert(str.substring(6,9) == 'odd');
  var parts = 'a b c'.split(' ');

  // 修剪、判空
  assert('  abc  '.trim() == 'abc');
  assert(''.isEmpty);
  assert('  '.isNotEmpty);

  // 大小写
  assert('dart'.toUpperCase() == 'DART');

  // 字符串拼接优先使用 StringBuffer(性能更高)
  var sb = StringBuffer();
  sb.write('Hello ');
  sb.writeAll([ 'A','B','C' ], ',');
  print(sb.toString());
}Code language: Dart (dart)

Regular Expressions RegExp

void main() {
  var reg = RegExp(r'\d+'); // 匹配连续数字
  var text = 'llamas live 15 to 20 years';

  assert(reg.hasMatch(text));
  // 全局匹配遍历
  for(var m in reg.allMatches(text)){
    print(m.group(0));
  }
  // 替换
  var res = text.replaceAll(reg, 'XX');
  print(res);
}Code language: Dart (dart)

Note: Code units do not directly correspond to visible user characters. For complex Unicode characters such as emoji sequences, use the third-party characters package.

4. Collections (List / Set / Map)

1. List: ordered, allows duplicates, supports index access

void main() {
  var fruits = [ 'apple','orange' ];
  fruits.add('kiwi');
  fruits.addAll([ 'grape' ]);
  fruits.removeAt(0);
  fruits.sort((a,b)=>a.compareTo(b)); //排序

  // 泛型约束
  var strList = <String>[];
}Code language: Dart (dart)

2. Set: unordered, unique elements, no index access

void main() {
  var set = <String>{};
  set.addAll([ 'gold','xenon' ]);
  set.add('gold'); //重复添加无效
  assert(set.contains('xenon'));

  // 交集运算
  var set2 = Set.from([ 'xenon','argon' ]);
  var inter = set.intersection(set2);
}Code language: Dart (dart)

3. Map: key-value collection, keys are unique

void main() {
  var map = {54: 'xenon'};
  print(map[54]);
  assert(map.containsKey(54));
  map.remove(54);

  // key不存在才赋值
  map.putIfAbsent('name', () => 'Dart');

  // 遍历
  map.forEach((k,v)=>print('$k:$v'));
}Code language: Dart (dart)

4. Iterable Common Collection Operations (List/Set implement Iterable)

Common higher-order methods: forEach, map, where, any, every

void main() {
  var list = [ 'green','black','chamomile' ];
  list.forEach(print);

  // map惰性求值,toList立即执行
  var upperList = list.map((e)=>e.toUpperCase()).toList();

  // 筛选
  var filter = list.where((e)=>e == 'chamomile');
  assert(list.any((e)=>e == 'chamomile'));
  assert(!list.every((e)=>e.contains('tea')));
}Code language: Dart (dart)

5. URI Handling (Uri)

Used for URL encoding, decoding, parsing and URL construction

  1. encodeFull: Only escapes whitespace and similar characters; keeps symbols like / : ? &
  2. encodeComponent: Escapes all special characters (ideal for parameter values)
void main() {
  // 解析url
  var uri = Uri.parse('https://example.org:8080/foo?lang=dart#frag');
  print(uri.scheme);
  print(uri.host);
  print(uri.queryParameters);

  // 构造url
  var newUri = Uri.https('example.org','/foo', {'lang':'dart'});
}Code language: Dart (dart)

6. Date & Time DateTime & Duration

  • DateTime: A single moment in time, supports local time zone / UTC
  • Duration: Time interval, used for adding/subtracting time and calculating differences
void main() {
  var now = DateTime.now();
  var y2k = DateTime.utc(2000);

  // 时间增减
  var nextYear = y2k.add(const Duration(days:366));
  var diff = nextYear.difference(y2k);
  print(diff.inDays);

  // 时间戳(毫秒,Unix纪元1970-01-01 UTC)
  print(y2k.millisecondsSinceEpoch);
}Code language: Dart (dart)

Warning: Shifting dates by days can cause errors under daylight saving time. Prefer UTC timestamps.

7. Utility Interfaces & Base Types

1. Comparable: Implement for object comparison, used in sorting

class Line implements Comparable<Line> {
  final int length;
  const Line(this.length);
  @override
  int compareTo(Line other) => length - other.length;
}Code language: Dart (dart)

2. Custom Map Keys: Override == and hashCode

Rule: Equal objects must return identical hashCode values

class Person {
  final String first, last;
  Person(this.first,this.last);

  @override
  int get hashCode => Object.hash(first, last);

  @override
  bool operator ==(Object other) =>
      other is Person && other.first == first && other.last == other.last;
}Code language: Dart (dart)
  • 3. Iterable + Iterator

Implement Iterable to enable for-in loops and customize iteration logic.

8. Exception Handling

  • Error: Severe failures, generally not caught (e.g. NoSuchMethodError)
  • Exception: Expected runtime issues which can be caught; custom exceptions are supported
class FooException implements Exception {
  final String? msg;
  const FooException([this.msg]);
  @override
  String toString() => msg ?? 'FooException';
}Code language: Dart (dart)

9. Weak References & Finalizers

  • WeakReference: Weak reference; does not prevent GC from collecting objects
  • Finalizer / NativeFinalizer: Runs callback after object collection to release native resources
  • Finalizable: Protects objects from premature GC collection

dart:core Standard Library

Leave a Reply

Your email address will not be published. Required fields are marked *