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

Returns a forward range which will iterate over the values of the associative array. The values are returned by reference.

auto byValue(T, K, V) (
  T aa
) pure nothrow @nogc @safe;

auto byValue(T, K, V) (
  T* aa
) pure nothrow @nogc;

If structural changes are made to the array (removing or adding keys), all ranges previously obtained through this function are invalidated. The following example program will dereference a null pointer:

import std.stdio : writeln;

auto dict = ["k1": 1, "k2": 2];
auto valueRange = dict.byValue;
dict.clear;
writeln(valueRange.front);    // Segmentation fault

Parameters

NameDescription
aa The associative array.

Returns

A forward range referencing the values of the associative array.

Example

auto dict = ["k1": 1, "k2": 2];
int sum;
foreach (v; dict.byValue)
    sum += v;

writeln(sum); // 3

Authors

Walter Bright, Sean Kelly

License

Boost License 1.0.