我在理解在 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]
}
有人可以向我解释一下吗?书中的解释对我的帮助不够:(