call method
Returns the result of calling func
or a cached result if available.
- The cache is initialized when first accessed.
- To re-initialize the cached function result use the
optional parameter
recalculate
.
Implementation
T call(
A1 arg1,
A2 arg2, {
bool recalculate = false,
}) {
if (recalculate) {
_functionTable[arg1] = {arg2: func(arg1, arg2)};
return _functionTable[arg1]![arg2]!;
} else {
if (_functionTable.containsKey(arg1)) {
return _functionTable[arg1]![arg2] ??= func(arg1, arg2);
} else {
_functionTable[arg1] = {arg2: func(arg1, arg2)};
return _functionTable[arg1]![arg2]!;
}
}
}