TCL-返回过程中的词典

  • 本文关键字:过程中 返回 TCL- tcl
  • 更新时间 :
  • 英文 :


我想创建几个处理字典的过程,例如:

->推送

->弹出

->打印

etc

我创建了一个程序;创建/设置字典的值";。

从用户的角度来看,他们会做:

push myDict1 key value

push myDict2 key value

这将创建两个具有给定键和值的不同字典。

现在,我希望该过程返回字典的变量,这样用户就可以执行以下操作:

CCD_ 3和内容将被显示。

如果我做了这样的事情:

proc push {dictName key value } {
return [dict set $dictName $key $value]
}

它将返回表达式的值,但我希望它写入某种全局变量,其名称为myDict1或myDict2,这是用户在调用过程时指定的。

我已经尝试使用两种";变量";以及";upvar";没有成功。

如有任何帮助,我们将不胜感激。提前谢谢。

干杯,

Pedro

学习使用upvar可能很棘手,您可能使用错误。

proc push {dictName key value} { 
upvar $dictName local_dict
# Any change to 'local_dict' will affect the $dictName variable 
#  in the scope that called the proc.
dict set local_dict $key $value
return $local_dict
}
set myDict1 [dict create]
push myDict1 key1 value1
puts $myDict1 --> 'key1 value1'

(从我最初的回答中删除了一条错误的评论(

最新更新