我最近才意识到VBA还支持使用运算符+
来连接String
类型,而不仅仅是&
。
因此,如果
Dim a As String, b As String
a = "Stack "
b = "Overflow"
以下语句将产生相同的结果:
>> a + b '--> "Stack Overflow"
>> a & b '--> "Stack Overflow"
在我的有限经验中,我从来没有发现任何一种语言中有两个运算符总是做相同的事情。我感觉VBA倾向于与其他常见语言合并(只使用
+
连接字符串),但仍支持&
给老派VB开发人员使用。但这听起来不像是一个技术解释,所以我想问以下问题:这两个运算符之间是否有任何实际区别?在使用
+
而不是&
时是否会产生不同的结果?
我所想到的
我所想到的可能是一个“类似答案”,但在网络上找不到。它受JavaScript的启示,你可以几乎在任何地方使用==
和===
具有相同的行为,除了身份(===)运算符的行为与等式(==)运算符完全相同,除了不进行类型转换,且类型必须相同才被视为相等。
+
会导致它检查它们是否为数字文本字符串,如果是,则将它们转换为数字,相加,然后再转换回来。 - RBarryYounga = "1"
和b = "2"
,那么执行a+b
或a & b
都会得到"12"
。因此我认为这与此无关,即使这本来是合理的。 - Matteo NNZ