這是一個普遍的問題的東西。假設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