如何从索引开始有效地获取Tcl列表的其余部分?

Wil*_*mKF 2 performance list tcl

我想获取列表的特定索引后的所有元素.这可以写成:

set foo {0 1 2 3 4 5 6 <...> n}
puts [lrange $foo 1 [llength $foo]]
Run Code Online (Sandbox Code Playgroud)

但是,计算列表长度似乎是浪费.如果lrange的最后一个参数是可选的并且省略它意味着继续直到列表的结尾,那将是很好的,但是,唉今天不是这样.

有没有其他方法在Tcl中有效地执行此操作而不计算列表的长度?

Jef*_*rey 7

您可以使用"end"代替"[llength $ foo]"

所以...

把[lrange $ foo 1结束]