On Nov 4, 2006, at 10:56 AM, Tereza Snyder wrote:

That looked suspicious. Sure enough, a number 6 will match a literal 6 in a case, but a string "6.0" will not match a literal 6 in a case. A string "6.0" will match a 6.0 case. A number 6 will not match a 6.0 in the case.


To be clear: these DO match in an if? or not?

Good question!

Yes. If both values are the result of arithmetic or looks like a number (what I call numeral) including E notation and 0x notation, then a numerical comparison is done with 'is' and '='. The 'if' uses that '=' operator, so that will work with numbers (numeral or the result of arithmetic).

The 'switch x' seems to convert x to a string and the 'case y' seems to convert y to a string, and then comparisons are made. A numerical literal is a string in this case. That is, it looks as though 'case 5.0' is the same as 'case "5.0"'.

So, a 'switch' might not be equivalent to a similar 'if'.

The 'switch' does look at caseSensitive and does work with NUL characters (Rev null).

Is this interesting behavior of 'switch' a feature or a bug? Or is this already in the docs?

Dar

--
**************************************
Dar Scott
Dar Scott Consulting  and  Dar's Lab
8637 Horacio Place NE
Albuquerque, NM 87111

Lab, office, home:  +1 505 299 9497
Fax:                call above first
Skype:              ask

http://www.swcp.com/dsc
[EMAIL PROTECTED]

Computer programming
**************************************


_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to