Dart Quick Reference

Variables & Types

// Type inference var name = 'Alice'; // String var age = 28; // int final pi = 3.14; // immutable const maxSize = 100; // compile-time constant // Null safety String? nullable = null; // nullable type String nonNull = 'hi'; // non-nullable String name2 = nullable ?? 'default'; // null coalescing String name3 = nullable!; // force unwrap

Collections

// List var list = [1, 2, 3]; list.add(4); list.where((n) => n > 2).toList(); // [3, 4] // Map var map = {'key': 'value', 'num': 42}; map['newKey'] = 'new'; // Set var set = {1, 2, 3, 2}; // {1, 2, 3} // Spread operator var merged = [...list, ...['a', 'b']]; // Collection if/for var evens = [for (var i = 1; i <= 10; i++) if (i.isEven) i];

Async / Await

// Future Future fetchUser(int id) async { final response = await http.get(Uri.parse('/users/$id')); return response.body; } // Stream Stream countDown(int from) async* { for (int i = from; i >= 0; i--) { await Future.delayed(Duration(seconds: 1)); yield i; } } // Error handling try { final data = await fetchUser(1); } on HttpException catch (e) { print('HTTP error: $e'); } catch (e, stack) { print('Error: $e\n$stack'); }

Classes

class Animal { final String name; int _age; // private field Animal(this.name, this._age); // named constructor params Animal.kitten(String name) : this(name, 0); // named constructor int get age => _age; set age(int v) => _age = v > 0 ? v : 0; @override String toString() => 'Animal($name, age=$_age)'; } class Dog extends Animal { String breed; Dog(String name, int age, this.breed) : super(name, age); void bark() => print('Woof!'); }

pubspec.yaml

name: my_app description: A sample Dart application version: 1.0.0 environment: sdk: '>=3.0.0 <4.0.0' dependencies: http: ^1.1.0 json_serializable: ^6.7.0 dev_dependencies: test: ^1.24.0 lints: ^3.0.0