2016-12-27 320 views

回答

2

我期望之一:

string equal $s "" 

expr {$s eq ""} 

將是最快的;這兩種情況會產生幾乎相同的字節碼,所以我不希望區分它們。

+0

謝謝 - 這真是太棒了 – BabyGroot

2
proc check {} { 
set s {} 
puts "string equal ->[time {string eq $s ""} 100000]" 
puts "string compare ->[time {string compare $s ""} 100000]" 
puts "regexp   ->[time {regexp ^$ $s} 100000]" 
puts "expr ==  ->[time {expr {$s == ""}} 100000]" 
puts "expr eq  ->[time {expr {$s eq ""}} 100000]" 
} 
check ; # See the behavior in your PC 
+0

我不知道這是否是一個好辦法。第一種測試方法總是花費最長的時間(即,如果不再處於頂端,那麼花費最長時間的方法花費的時間最長)。就個人而言,我認爲字符串平等和比較是更快的。雖然在寫'if'時,我會使用'$ s eq「」'。 [見這個wiki](http://wiki.tcl.tk/15322)。 – Jerry

+0

該方法存在不與完全相似的情況。 –

相關問題