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

如何在Tcl中创建哈希的哈希?MEM_GROUP哈希元素访问求助

Tcl中创建MEM_GROUP并访问Person3的DDR3

Tcl里没有专门的“哈希”类型,一般用关联数组或者**字典(dict)**来实现键值对结构,嵌套层级的话用字典会更直观。

1. 构建MEM_GROUP嵌套字典

假设你的表格是“人员-内存归属”的对应关系,用dict create就能快速构造嵌套结构:

# 创建包含人员与内存归属的MEM_GROUP字典
set MEM_GROUP [dict create \
    Person1 [dict create ownership {DDR1 DDR2}] \
    Person2 [dict create ownership {DDR2}] \
    Person3 [dict create ownership {DDR3}] \
]

2. 访问Person3的ownership下的DDR3

先提取Person3对应的内存列表,再从中获取DDR3:

# 第一步:拿到Person3的内存归属列表
set person3_mem_list [dict get $MEM_GROUP Person3 ownership]

# 如果ownership里只有DDR3,直接取第一个元素即可
set target_ddr [lindex $person3_mem_list 0]
puts "Person3拥有的DDR3: $target_ddr"

# 要是列表里可能有多个内存,先检查DDR3是否存在再获取
if {[lsearch -exact $person3_mem_list DDR3] != -1} {
    set target_ddr DDR3
    puts "找到Person3的DDR3: $target_ddr"
}

备选方案:用关联数组实现

如果更习惯用扁平的哈希结构,可以用复合键来表示层级关系:

# 创建关联数组MEM_GROUP
array set MEM_GROUP {
    Person1.ownership {DDR1 DDR2}
    Person2.ownership {DDR2}
    Person3.ownership {DDR3}
}

# 直接通过复合键访问Person3的内存列表,再提取DDR3
set person3_mem_list $MEM_GROUP(Person3.ownership)
set target_ddr [lindex $person3_mem_list 0]
puts "Person3的DDR3: $target_ddr"

内容的提问来源于stack exchange,提问作者Aarav Soni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:03:30