Last updated:
0 purchases
memoize
Memoize #
memoize returns cached result of function call when inputs were not changed from previous invocation.
Warning #
memoize_dart now supports dart 2.12.0 and null safety since 3.0.0 version.
For 2.0.0 we drop func as dependency. Because it archived and doesn't support dart2.
If you need dart-1.24.3 use 1.4.0 version
Examples #
memo1, memo2, ... memo10 compare arguments with == operator:
import 'dart:math';
import 'package:memoize/memoize.dart';
void main() {
var rect1 = new Rectangle<int>(0, 0, 10, 10);
var rect2 = new Rectangle<int>(0, 0, 10, 10);
var func = memo1((Rectangle<int> a) => a.width * a.height);
print(func(rect1));
print(func(rect2)); // cached result is returned
}
copied to clipboard
imemo1, imemo2, ... imemo10 compare arguments with identical function:
import 'dart:math';
import 'package:memoize/memoize.dart';
void main() {
var rect1 = new Rectangle<int>(0, 0, 10, 10);
var rect2 = new Rectangle<int>(0, 0, 10, 10);
var func = imemo1((Rectangle<int> a) => a.width * a.height);
print(func(rect1));
print(func(rect1)); // cached - same object instance
print(func(rect2)); // not cached - different object instance
}
copied to clipboard
memo0 caches result on first call and can be used as lazy cache:
import 'dart:math';
import 'package:memoize/memoize.dart';
void main() {
var func = memo0(() => new Rectangle<int>(0, 0, 10, 10));
print(func());
print(func()); // cached - same object instance
}
copied to clipboard
Contributors #
Brian Egan
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.