这是一个普遍的问题的东西。假设TCL 8.6,让我们来看看我有一个相当短的程序。我有2种方法返回所关心的价值:
1.使用一些标准做法的if/else代码,存储在一个变量,并返回变量的值。例如:
吹毛求疵:TCL存放在变量与否,对于速度,程序
proc me { gop goo } {
if { [ lomsa $gop ] {
set ret [ foo $goo $gop ]
} else {
set ret [ bar $gop $goo ]
}
return $ret
}
2.使用三元参数,并且基本上,具有程序不添加专用变量(即,仅使用参数)。三元表达式的输出是返回值。例如:
proc me { gop goo } {
expr { [ lomsa $gop ] ? [ foo $goo $gop ] : [ bar $gop $goo ] }
}
可读性是由我的团队的一些成员认为是更好的项目稍好1.
我无法访问的伪代码引擎在我的TCL设置(这是从一个shell一个供应商),但我认为代码中的差异,以及它的性能会是,但只是轻微的,如果有的话。即,程序需要存储返回值的某个地方。注册一个特定变量的成本是多少,而不仅仅是将其作为一个返回值?
这个问题可以扩展,例如,switch语句。相同的规则适用。 switch语句可以在一个变量存储,然后,在开关后,将返回变量的值,或switch语句将只返回值,W/O将其存储在一个变量。另外,在返回部分之前可以有大量的代码。上述程序上市是他们所谓的“方便过程”
你可以认为性能是代码的高利息。
哇!我需要开一个新的问题来理解为什么会发生这种情况。 – user1134991