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.require

Looks up key; if it exists returns corresponding value else evaluates value, adds it to the associative array and returns it.

ref V require(K, V) (
  ref V[K] aa,
  K key,
  lazy V value = V.init


aa The associative array.
key The key.
value The required value.


The value.


auto aa = ["k1": 1];
writeln(aa.require("k1", 0)); // 1
writeln(aa.require("k2", 0)); // 0
writeln(aa["k2"]); // 0

// Tests whether T can be @safe-ly copied. Use a union to exclude destructor from the test.
private enum bool isSafeCopyable(T) = is(typeof(() @safe { union U { T x; } T *x; auto u = U(*x); 


Walter Bright, Sean Kelly


Boost License 1.0.