VB官方文档似乎很鼓励使用"无$"类字符串函数,比如:Left、LTrim或者UCase,而不是实现同样功能的Left$、LTrim$和UCase$函数。但是我们必须认识到:前者返回variant类型的数值,当用于字符串表达式中时,最终必须要转换为字符串(string)类型。
因此,在严格要求时间的代码段中,我们应该使用后者,它们将快5-10%。
所有内置函数几乎都首先调用带Var尾缀的运行库函数。字符串函数而言,这个运行库函数根据类型进行一番转换后,继续调用带Bstr后缀的运行库函数。后面这个运行库函数则会到OLEATO32中再调用相应的BSTR相关的函数。
而带$的字符串函数,则会直接调用带Bstr后缀的运行库函数,少了一层封装。所以,带$的字符串函数会比不带的,要快,但也只能快那么一丢丢。
凡是返回值为Variant的字符串,均可以用$修饰符。为了更方便各位观摩,给大家列出一个清单:
LeftB
RightB
Lcase
Trim
Ltrim
Rtrim
Space
Ucase
Hex
Oct
String
Date
Time
Left
Right
MidB
Mid
CurDir
Error
Environ
Command
以上函数,均有相应的$版。