On Saturday, Nov 9, 2002, at 15:10 US/Pacific, Dave Watts wrote:
> Pedantry can be dangerous. While Len returns an integer, CF treats 
> non-zero
> integer values as boolean "true" values when they're used in boolean
> expressions.

Yes, so does C and C++ but that doesn't make it good style, IMO.

> Now, you may argue that your explicit syntax is more readable, but I'd
> counter that by saying that any competent CF developer should know that
> integers are treated as boolean values.

As would any C or C++ developer. Again, it doesn't make it good style. 
I prefer <cfif len(x) gt 0> as an explicit test although I probably 
wouldn't take a developer out and shoot them for just writing <cfif 
len(x)>. I *would* take them out and shoot them for writing <cfif not 
len(x)> which I think is a horribly ugly and easily misread condition! 
<cfif len(x) eq 0> is *much* clearer. I've seen many 'non-programmers' 
write the equivalent of 'not len(x)' when they really mean something 
like 'len(x) ne 0'! My motto is: be explicit.

Note: never, ever compare boolean expressions to 0 or 1 (or false / 
true), especially to 1 (true). <cfif f(x)> is not always equivalent to 
<cfif f(x) eq true> - precisely because people can be lazy about mixing 
numbers with real booleans.

Note 2: don't write this sort of thing either:

        <cfif somecondition>
                <cfset x = 1>
        <cfelse>
                <cfset x = 0>
        </cfif>

Think about that... you really mean this, don't you:

        <cfset x = somecondition>

(and then treat 'x' as a boolean)

The following seems a more common version of that:

        <cfif somecondition>
                <cfset y = false>
        <cfelse>
                <cfset y = true>
        </cfif>

Why not:

        <cfset y = not somecondition>

"SOAP is not so much a means of transmitting data
  but a mechanism for calling COM objects over the Web."
-- not Microsoft (surprisingly!)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Signup for the Fusion Authority news alert and keep up with the latest news in 
ColdFusion and related topics. http://www.fusionauthority.com/signup.cfm

Reply via email to