TCL列表和foreach问题

Nar*_*rek 1 foreach list tcl

说我有一个TCL列表:

set myList {}
lappend myList [list a b 1]
lappend myList [list c d 2]
.....
Run Code Online (Sandbox Code Playgroud)

现在我想修改这样的列表:

foreach item $myList {
lappend item "new"
}
Run Code Online (Sandbox Code Playgroud)

但最后我没有修改列表.为什么?item是列表项的参考号吗?

dry*_*dam 7

item不是到列表项的引用.这是一份副本.要做你想做的事,你可以这样做:

set newlist {}
foreach item $myList {
  lappend item "new"
  lappend newlist $item
}
set mylist $newlist
Run Code Online (Sandbox Code Playgroud)