Dart: code snippets for faster coding

There are different concepts that improve the data handling in Dart. The following list of snippets is a collection of the most handy once. Warning: this might simplify your code a lot! 😉

The Spread Operator

Dart supports the spread operator, which allows to insert a collection (multiple elements) into a collection:

var values = [1, 2, 3];
var moreValues = [...values, 4, 5, 6];
// [1, 2, 3, 4, 5, 6]


Dart supports different operators. You can implement many of these operators as class members.

unary postfixexpr++    expr--    ()    []    .    ?.
unary prefix-expr    !expr    ~expr    ++expr    --expr      await expr 
multiplicative*    /    %  ~/
additive+    -
shift<<    >>    >>>
bitwise AND&
bitwise XOR^
bitwise OR|
relational and type test>=    >    <=    <    as    is    is!
equality==    !=
logical AND&&
logical OR||
conditionalexpr1 ? expr2 : expr3
cascade..    ?..
assignment=    *=    /=   +=   -=   &=   ^=   etc.

Merging Two Maps

The code snippet below merges two maps. All (key) values in default are available in the merged map. This snippet only works for single level maps, multidimensional maps are only handled on the first level:

var options = {
    "hidden": "false",
    "option": "3",
var defaults = {
    "hidden": "true",
    "escape": "false",
options = {...defaults, ...options};
// {hidden: false, escape: false, option: 3}

Default Value

To set a default value for a nullable variable, you can use the “if null” operator ‘??’:

const defaultValue = "Default";
final someVar = null;
var expectingValue = someVar ?? defaultValue;
// "Default"

if and for in Collections

Dart offers an easy way to create dynamic lists by using conditionals (if) and repetition (for):

var nav = [
  if (promoActive) 'Outlet'
var listOfInts = [1, 2, 3];
var listOfStrings = [
  for (var i in listOfInts) '#$i'
assert(listOfStrings[1] == '#1');

String to Number

var stringValue = "123";
var intValue = int.parse(stringValue);
// 123 (int)
var stringValue = "123.45";
var doubleValue = double.parse(stringValue);
// 123.45 (double)

Numbers to String

Most of the Dart data types support a toString() method, which allows a conversion to strings. This is very handy for every parameter where a string is needed:

int intValue = 123;
var stringValue = intValue.toString();
// "123" (string)

Check if object exists in list

To check if an object is already in a list, you can use the .where() method. It checks and creates a list based on given conditions. So if the result is not empty then that item exists.

var list = List<MyObject>[];
var myObject = MyObject();
if (list.where((element) => element.optionId == myObject.optionId).isNotEmpty) {
  print('object exists');
} else {
  print('object does not exist');

One comment on “Dart: code snippets for faster coding

  1. Bookmarked this to Evernote, thank you for this! I am new to Flutter and trying to gather all the useful resources possible, this is an excellent one.

Leave a Reply

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