我是tcl的新手。我在tcl中有以下代码:
proc ::SMB::SmbSetDefaultConfig {{names all}} {
variable SmbInfo
variable SmbPortId
if {$names == "all"} {
set ports $SmbPortId
} else {
set ports $names
}
foreach name $ports {
set SmbInfo($name-SmbSetTxActive) 0
set SmbInfo($name-SmbSetSpeed) 1000
set SmbInfo($name-SmbSetDuplex) FDX
}
}
我试图了解声明为变量的SmbInfo的数据结构。其他参数(SmbSetTxActive,SmbSetSpeed,SmbSetDuplex)看起来像是使用$ name创建一个关联数组。但是,我找不到有助于创建这种结构的变量类型。请帮忙。
答案 0 :(得分:0)
Tcl的数组是关联数组。在封面下,它们使用哈希表实现,哈希表(有效地)使用字符串作为键并映射到Tcl_Var
结构,该结构又包含该元素的当前值和一些位标志(用于表示)一堆东西,比如那个价值的含义。)