You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在D语言中如何创建不可变的关联数组的关联数组?

D语言中创建不可变嵌套关联数组的正确方式

你的编译错误源于D语言对嵌套关联数组初始化的语法要求:内层的关联数组不能直接使用[key: value]的简写初始化,编译器会将其误解析为静态数组初始化器,而非关联数组。需要显式构造内层关联数组实例,以下是两种可行的修正方案:

方案1:使用标准库的assocArray函数

导入std.array模块后,用assocArray将键值对转换为关联数组:

import std.array;

enum Direction
{
    NORTH = "north",
    SOUTH = "south"
}

immutable Direction[int][int] COORD_LOOKUP = [
    3: assocArray([2: Direction.NORTH]),
    1: assocArray([3: Direction.SOUTH])
];

方案2:显式指定内层关联数组类型

直接通过类型构造器创建关联数组实例:

enum Direction
{
    NORTH = "north",
    SOUTH = "south"
}

immutable Direction[int][int] COORD_LOOKUP = [
    3: Direction[int]([2: Direction.NORTH]),
    1: Direction[int]([3: Direction.SOUTH])
];

两种方案都能让编译器正确识别内层结构为关联数组,满足你创建不可变嵌套关联数组的需求。

内容的提问来源于stack exchange,提问作者Rawley Fowler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:39:55