我不明白,为什么使用listFindNoCase()和ListFind()进行一系列OR和IS / EQ比较的首选方式? JVM是否能够优化它并生成有效的代码,而不是进行必须处理字符串标记的函数调用?或者CF做的事情效率
Use
listFindNoCase()
orlistFind()
instead of the is and or operators
to compare one item to multiple items. They are much faster.
http://www.adobe.com/devnet/coldfusion/articles/coldfusion_performance.html
答案很简单:类型转换.你可以比较2 EQ“2”或now()EQ“2011-01-01”,或真正的EQ“YES”.转换(到多种类型)和比较的成本非常高.ListFind()不需要尝试多次转换,因此速度更快.
这是动态打字的代价.