Coding style 从其他列表项创建列表时的TCL编码样式

Coding style 从其他列表项创建列表时的TCL编码样式,coding-style,tcl,Coding Style,Tcl,我有以下几行代码: set FxGlob [lindex $GlobSectionForces $i] set FyGlob [lindex $GlobSectionForces $i+1] set FzGlob [lindex $GlobSectionForces $i+2] set GlobForces [ list $FxGlob $FyGlob $FzGlob ] 我觉得那很难看。我

我有以下几行代码:

            set FxGlob  [lindex $GlobSectionForces $i]
            set FyGlob  [lindex $GlobSectionForces $i+1]
            set FzGlob  [lindex $GlobSectionForces $i+2]
            set GlobForces [ list $FxGlob $FyGlob $FzGlob ] 
我觉得那很难看。我知道我可以把这一切都放在一个set命令中,不会更好。
有没有“更好”或“更干净”的方法?使用
lrange
将列表拆分为所需的3个值,然后使用lassign提取这些值

set GlobForces [lrange $GlobSectionForces $i $i+2]
lassign $GlobForces FxGlob FyGlob FzGlob

实际上,您不需要
expr
lrange
支持M+N索引,因此
lrange$GlobSectionForces$i$i+2
很好。另外,如果在
GlobSectionForces
中只有这三项,
lrange$GlobSectionForces$i end
有效。@Hoodiecrow,更正,我错误地认为数学表达式只允许end(例如
end-2
)。@KillianDS它取决于Tcl的版本。(我们还没有让它们变得非常高效;我怀疑这是另一天的项目……)好吧,这是用Tcl 8.5改变的。对于大整数,这是一个问题。