我在理解在 TCL 中使用 uplevel 时遇到了一些问题。我正在阅读 Brent Welch 在 TCL 和 Tk 中的实用编程,并且有一个我无法理解的高级示例。这里是:
proc lassign {valueList args} {
if {[llength $args] == 0} {
error "wrong # args:lassign list varname ?varname...?"
}
if {[llength $valueList] == 0} {
#Ensure one trip through the foreach loop
set valueList [List {}]
}
uplevel 1 [list foreach $args $valueList {break}]
return [lrange $valueList [llength $args] end]
}
有人可以向我解释一下吗?书中的解释对我的帮助不够:(