檢查空白字符串的最快方法是什麼?Tcl:什麼是檢查空白字符串的最快方法
[string eq $s ""]
[string compare $s ""]
[expr $s == ""]
[regexp ^$ $s]
檢查空白字符串的最快方法是什麼?Tcl:什麼是檢查空白字符串的最快方法
[string eq $s ""]
[string compare $s ""]
[expr $s == ""]
[regexp ^$ $s]
我期望之一:
string equal $s ""
或
expr {$s eq ""}
將是最快的;這兩種情況會產生幾乎相同的字節碼,所以我不希望區分它們。
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
我不知道這是否是一個好辦法。第一種測試方法總是花費最長的時間(即,如果不再處於頂端,那麼花費最長時間的方法花費的時間最長)。就個人而言,我認爲字符串平等和比較是更快的。雖然在寫'if'時,我會使用'$ s eq「」'。 [見這個wiki](http://wiki.tcl.tk/15322)。 – Jerry
該方法存在不與完全相似的情況。 –
謝謝 - 這真是太棒了 – BabyGroot