View source code
Display the source code in object.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function object.update
Looks up key; if it exists applies the update callable else evaluates the create callable and adds it to the associative array
void update(K, V, C, U)
(
ref V[K] aa,
K key,
scope C create,
scope U update
)
if (is(typeof(create()) : V) && (is(typeof(update(aa[K .init])) : V) || is(typeof(update(aa[K .init])) == void)));
Parameters
Name | Description |
---|---|
aa | The associative array. |
key | The key. |
create | The callable to apply on create. |
update | The callable to apply on update. |
Example
auto aa = ["k1": 1];
aa .update("k1", {
return -1; // create (won't be executed)
}, (ref int v) {
v += 1; // update
});
writeln(aa["k1"]); // 2
aa .update("k2", {
return 0; // create
}, (ref int v) {
v = -1; // update (won't be executed)
});
writeln(aa["k2"]); // 0
Authors
Walter Bright, Sean Kelly
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.