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

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

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

auto byKey(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 keyRange = dict.byKey;
dict.clear;
writeln(keyRange.front);    // Segmentation fault

Parameters

NameDescription
aa The associative array.

Returns

A forward range referencing the keys of the associative array.

Example

auto dict = [1: "v1", 2: "v2"];
int sum;
foreach (v; dict.byKey)
    sum += v;

writeln(sum); // 3

Authors

Walter Bright, Sean Kelly

License

Boost License 1.0.