-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Map "putUntilAbsent" or similar? #3186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Added Area-Library, Triaged labels. |
This comment was originally written by [email protected] Maybe "putWhenAbsent" is a better name.. |
I think this is a little too specialized to be in the general map interface. You can simulate this by: Added WontFix label. |
Changes: ``` > git log --format="%C(auto) %h %s" 78bc50c..0035a40 https://dart.googlesource.com/pub.git/+/0035a40f Fix echo mode crash on `token add` (#3194) https://dart.googlesource.com/pub.git/+/a75a8c17 Don't warn against discontinued transitive dependencies (#3195) https://dart.googlesource.com/pub.git/+/cf2ed105 Fix analytics code (#3197) https://dart.googlesource.com/pub.git/+/08e13f7b Remove unused golden files (#3189) https://dart.googlesource.com/pub.git/+/b6293b80 Fix log message related to `pub global activate` (#3187) https://dart.googlesource.com/pub.git/+/94f6b477 Introducing command-line interface tests (#3161) https://dart.googlesource.com/pub.git/+/3ba8134f More details from getExecutableForCommand (#3186) https://dart.googlesource.com/pub.git/+/a2dbcfff Shorthand syntax for hosted dependencies (#3133) https://dart.googlesource.com/pub.git/+/435e4e3f Shuffle analytics (#3185) ``` Diff: https://dart.googlesource.com/pub.git/+/78bc50c7833451c24e531713362e46fd50621ff0~..0035a40f25d027130c0314571da53ffafc6d973b/ Change-Id: Idfd7c382985d1ad3e3ad87a621dc79d3b74e898e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218620 Reviewed-by: Jonas Jensen <[email protected]> Commit-Queue: Sigurd Meldgaard <[email protected]>
…2 revisions) https://dart.googlesource.com/dartdoc/+log/22facbb145d7..a6676ee58628 2022-09-27 [email protected] client search cleanup (#3186) 2022-09-27 [email protected] tool/grind.dart: cleanup directory signature calculation (#3187) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/dart-doc-dart-sdk Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Dart Documentation Generator: https://github.com/dart-lang/dartdoc/issues To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Tbr: [email protected] Change-Id: I0ff3cb34bb645b5e084a562862718e303e581643 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261261 Commit-Queue: DEPS Autoroller <[email protected]> Commit-Queue: Nate Bosch <[email protected]> Reviewed-by: Nate Bosch <[email protected]>
This issue was originally filed by [email protected]
I'd like to run a function which generates a new key until I have a key that doesn't already exist in my Map. Once I've got a new key, add it and the value to the map. Is there a better way of doing this?
I cooked up putUntilAbsent(k, v, f()) in the class that implements Map.
putUntilAbsent(k, v, fn()) {
while (containsKey(k)) {
k = fn();
}
this.Cache[k] = v;
return v;
}
The text was updated successfully, but these errors were encountered: