gpt4 book ai didi

TCL - 返回变量与 upvar 并修改

转载 作者:行者123 更新时间:2023-12-04 14:27:20 26 4
gpt4 key购买 nike

想听取 TCL 专业人士的建议以获得最佳实践。

假设您想使用 proc 构造一个包含特定数据的列表。现在哪个是最好的方法?

proc processList { myList } {
upvar $myList list_
#append necessary data into list_
}

proc returnList {} {
set list_ {}
#append necessary data into list_
return $list_
}

set list1 {}
processList list1

set list2 [returnList ]

推荐哪种做法?

编辑:很抱歉,我无法理解回答此问题的人的共识(和解释)。

最佳答案

我几乎总是使用第二种方法:

proc returnList {} {
set result {}
# ... accumulate the result like this ...
lappend result a b c d e
return $result
}
set lst [returnList]

内存使用或速度几乎没有区别,但我发现从功能上思考更容易。此外,在 Tcl 8.5 中,您可以相对简单地拆分结果列表(如果您需要的话):

set remainderList [lassign [returnList] firstValue secondValue]

这样,您将在 $firstValue 中得到 a,在 secondValue 中得到 b,以及$remainderList中的c d e

关于TCL - 返回变量与 upvar 并修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com