dictionary 0.2.4 copy "dictionary: ^0.2.4" to clipboard
dictionary: ^0.2.4 copied to clipboard

Dart 1 only

A more composable alternative to Dart's native Map implementation

Dictionary #

A more composable alternative to Dart's native Map implementation. All operations that fetch an element form the Dictionary return an Option type. If the fetched value existed then the Option typed returned will be Some and will have the value wrapped inside. If the key was not found in the Dictionary then the Option type returned will be None.

The impetus behind returning Option types instead of raw values is you can focus more on the composition and flow of your logic instead of worrying about defensive Map#containsKey safety checks.

Tested with Dart 0.4.7

Examples #

import 'package:dictionary/dictionary.dart';

main() {

  var dict = new Dictionary.fromMap({
    'A': 'a',
    'B': 'b',
    'C': 'c'
  });

  var other = new Dictionary.fromMap({
    'C': 'c',
    'D': 'd',
    'E': 'e'
  });

  var lowerA   = dict.getOrElse('A', 'N/A');
  var lowerB   = dict['B'].getOrElse('N/A');
  var lowerC   = dict.get('C').getOrElse('N/A');
  var findA    = dict.findKey((v, k) => k == 'B').getOrElse('N/A');
  var findB    = dict.findValue((v, k) => v == 'b').getOrElse('N/A');
  var findBs   = dict.partition((v, k) => v == 'b');
  var mapped   = dict.map((v, k) => v + " - mapped");
  var byValue  = dict.groupBy((v, k) => v);
  var diffKey  = dict.differenceKey(other);
  var diffVal  = dict.difference(other);
  var interKey = dict.intersectionKey(other);
  var interVal = dict.intersection(other);
  var merged   = dict.merge(other);
  var reduced  = dict.reduce((memo, v, k) => memo + v);
  var folded   = dict.fold(new Dictionary(), (memo, v, k) {
    memo[k] = v + " - folded";
    return memo;
  });
}
0
likes
25
pub points
3%
popularity

Publisher

unverified uploader

A more composable alternative to Dart's native Map implementation

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

option

More

Packages that depend on dictionary