Tcl 8.4和8.5中的keylset错误?

时间:2011-06-02 15:12:40

标签: tcl

考虑以下简单练习:

package require Tclx
keylset myArray "v1.5" "ready"
puts $myArray

预期产出:

{v1.5 ready}

实际输出:

{v1 {{5 ready}}}

我的问题是

  1. 这似乎是keylset中的错误,我已经在8.4和8.5
  2. 上确认了这种行为
  3. 我如何解决这个问题?我已经尝试了几种方法来引用密钥无济于事。

2 个答案:

答案 0 :(得分:4)

这不是一个错误,它是一个功能。 :) Dot是键控列表中的分层键分隔符。

请参阅示例以获取解释:

keylset myArray {v1.5} "ready" {v1.6} "empty"

puts $myArray                ;# ==> {v1 {{5 ready} {6 empty}}}
puts [keylget myArray v1]    ;# ==> {5 ready} {6 empty}
puts [keylget myArray v1.5]  ;# ==> ready
puts [keylget myArray v1.6]  ;# ==> empty

答案 1 :(得分:1)

keylset是一个Tclx命令。我真的建议你看看Tcl 8.5中的dict命令