[英]What is the difference between VBScript's + and & operator?
在每个谈论 VBScript 的网站上,“ &
”运算符都被列为字符串连接运算符。 但是,在我最近继承的一些代码中,我看到使用了“ +
”运算符,因此没有看到任何错误。 这是一个公认的替代方案吗?
+运算符是重载,而&运算符不是。 &运算符仅执行字符串连接。 在某些圈子中,&运算符被用作最佳实践,因为它是明确的,因此不会因重载而产生任何意外的影响。
&
运算符进行字符串连接,即,强制将操作数转换为字符串(例如首先对它们进行调用CStr
)。 如果其中一个表达式为数字,则+
强制执行加法运算。 例如:
1 & 2
给你12
,而
1 + 2
"1" + 2
1 + "2"
给你3
。
因此,建议使用&
进行字符串连接,因为它消除了歧义。
当字符串可以解释为数字时, +
运算符可能适得其反。 如果您不希望出现令人讨厌的意外,请使用&连接字符串。
在某些情况下,+会引发异常; 例如以下内容:
Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
'fvalue is a floating point number
MsgBox "Received Event: " + fvalue
End Sub
当COM对象源触发事件时,您将获得异常-您必须执行以下任一操作:
MsgBox "Received Event: " & fvalue
要么
MsgBox "Received Event: " + CStr(fvalue)
无论哪种情况,最好使用CStr(value)
; 但是使用&per above注释进行字符串连接几乎总是最佳实践。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.