在 D 中使用 byPair

Using byPair in D

我正在尝试完成 http://dlang.org/library/std/array/by_pair.html

中给出的示例

但我一直收到错误消息Error: no property 'byPair' for type 'int[string]'

有没有我需要导入但我不需要的东西?

import std.stdio;
import std.string;
import std.array;
import std.file;
import std.conv;
import std.regex;
import std.typecons : tuple, Tuple;
import std.algorithm : sort;

void main(string[] args)
{

        auto aa = ["a": 1, "b": 2, "c": 3];
        Tuple!(string, int)[] pairs;

        // Iteration over key/value pairs.
        foreach (pair; aa.byPair)
        {
            pairs ~= pair;
        }

        // Iteration order is implementation-dependent, so we should sort it to get
        // a fixed order.
        sort(pairs);
        assert(pairs == [
            tuple("a", 1),
            tuple("b", 2),
            tuple("c", 3)
        ]);
}

确保你有最新的 D 版本。

byPair 添加于 2.067.0:

https://github.com/D-Programming-Language/phobos/pull/2842

byPair 不是关联数组的固有 属性。 您需要导入 std.array : byPair 或只导入 std.array.

我猜,因为示例显示在 std.array 的文档中,所以假设用户将导入 std.array