Len(str)<=2 还是 Len(str)<3

作者:vkvi 来源:ITPOW(原创) 日期:2007-8-16
注意:如果您所在的组织在这方面有相应的规范,本文可能不适用于您。

由于 Len 返回值只可能是整数,所以 Len(str) <= 2 和 Len(str) < 3 的返回结果是一样的,但哪种好呢?

我认为这主要从需求中所要表现的含义上来确定。

  • 如果需求说:字符串长度小于或等于 2 就如何如何,那么选用 Len(str) <= 2。
  • 如果需求说:字符串长度没有达到 3 就如何如何,那么选用 Len(str) < 3。

举例来说:用户名的有效长度为 [3-12],那么考虑最小长度时:

  • 此时如果考虑整数,2 和 3 均是临界点,2 是用户名过短的最大长度,3 是用户名有效的最小长度。
  • 而如果考虑的是小数,则只有 3 这一个临界点,3 是用户名有效的最小长度,而用户名过短的最大长度是 2.999999...。

虽然 Len 返回的只可能是整数,所以两种写法的结果都相同,但如果不是 Len 呢?如果是一个自定义函数呢?即使这个自定义函数今天返回的是整数,谁能保证它明天不会因为升级而返回小数呢?所以在这种情况下应该选用 Len(str) < 3。

注意:上面所举的示例是“用户名长度没有达到最小长度则...”,如果需求是“用户名长度没有超过最大长度则...”又是另一种考虑,虽然都是在“<=”与“<”之间。

相关文章