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];
print(moreValues);
// [1, 2, 3, 4, 5, 6]
Operators
Dart supports different operators. You can implement many of these operators as class members.
Description | Operator |
---|---|
unary postfix | expr++ 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 | || |
conditional | expr1 ? 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};
print(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;
print(expectingValue);
// "Default"
if and for in Collections
Dart offers an easy way to create dynamic lists by using conditionals (if
) and repetition (for
):
var nav = [
'Home',
'Furniture',
'Plants',
if (promoActive) 'Outlet'
];
var listOfInts = [1, 2, 3];
var listOfStrings = [
'#0',
for (var i in listOfInts) '#$i'
];
assert(listOfStrings[1] == '#1');
String to Number
var stringValue = "123";
var intValue = int.parse(stringValue);
print(intValue);
// 123 (int)
var stringValue = "123.45";
var doubleValue = double.parse(stringValue);
print(doubleValue);
// 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();
print(stringValue);
// "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');
}
Leave a Reply