检查空白字符串的最快方法是什么?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