“& Cstr(thingy) &” is like writing Cstr(Cstr(thingy)).
The & would cast whatever thingy is into into a string anyway, but CStr already did that, but & doesn’t know that and still needs to perform a type check (or perform yet another cast, not sure how it’s implemented).
I have to admin that I actually never timed the difference between + and & in Lotusscript.
The reason I posted this was actually of historical reasons: In MS Visual Basic (up to version 6, not the .NET edition), string concatenation using & is very inefficient, to the point that there are various custom string handling classes floating around on the net to compensate for this. Since I’ve done a lot of VB programming in the past, I’ve just gotten used to not rely on implicit type casting etc. but do it the more efficient way (actually, the most efficient way in VB to concatenate strings is not using & OR +, but by adding all strings in an array and then explode/merge the array into a string via a built-in method, but thats beside this post), so I just carried this habit over to Lotusscript. If in fact the & operator is comparable to using +, then kudos to the folks who implemented the Lotusscript language (who then did a better job than the guys who implemented the string handling routines in VB).