在CFML中,len(x)更好还是x NEQ“”更好?

时间:2011-07-28 19:32:26

标签: coldfusion

<cfif len(x)>

或者

<cfif x NEQ "">

哪一个更有效率和可读性?函数调用vs比较空字符串?

5 个答案:

答案 0 :(得分:8)

我和斯科特在一起:

<cfif len(trim(x))>

当您将数据库元素分配给变量,具有“Null”值或单个空格时,它将只传递长度测试,修剪修复它。

我只使用它,如果我在我自己的代码中,并且我肯定我的变量已被声明。然而,我常常在国外遇到另一个程序员问题,所以我的测试看起来像:

<cfif isdefined('x') AND len(trim(x)) gt 0>

至于可读性,它不是最漂亮的,但它是最彻底的。

答案 1 :(得分:4)

就个人而言,我通常使用:

len( trim( x ) )

答案 2 :(得分:4)

我用:

 if(len("String"));

我认为代码更清晰,因为他们喜欢说“富有表现力”。使用这种语法你所说的代码就是“如果这个字符串有一个长度”这样做,你的代码相反的是“说明字符串的长度是否为空字符串”。

我还使用ColdFusions松散布尔值来解决很多问题:

  if(a + b){
   ...
   }

答案 3 :(得分:2)

Ryan在钱上并且理所当然地接受了答案。

我在这种情况下的考虑是,积极表达的表达方式稍微容易得到一个人的大脑而不是负面的大脑,所以就清晰度而言:使用len()优于与...的负面比较空字符串。

同样从你的实用角度来看,你很可能想知道你是否有一个长度的字符串,而不是字符串碰巧不是一个空字符串(如果你看到轻微的语义差异),所以len()方法将更符合您的实际要求。

至于做一个trim():除非它来自用户输入并且删除空白填充很重要,否则我不会这样做。我坚信“垃圾进,垃圾出”。它也是第二次猜测数据的意图,我非常不喜欢那些不仅仅是正确地说出来的代码,而不是更多,也不是更少。

这里绝对没有关于性能的现实考虑因素,所以不要担心这类事情,而是关注什么使得最可读的代码能够完成手头的工作。

答案 4 :(得分:0)

从我记忆中来看,len(x)或者更确切地说len(trim(x))比x neq更快“”