¿Cuál es la diferencia entre:VBA: Diferencia entre y y +
string1 + string2
y
string1 & string2
¿Son equivalentes? ¿Por qué tener dos símbolos diferentes que hacen lo mismo?
¿Cuál es la diferencia entre:VBA: Diferencia entre y y +
string1 + string2
y
string1 & string2
¿Son equivalentes? ¿Por qué tener dos símbolos diferentes que hacen lo mismo?
Las expresiones son las mismas siempre que los operandos sean cadenas; si no, +
podría agregarlos en su lugar dependiendo de las conversiones de tipo. &
garantiza que no obtendrá nada excepto una concatenación de cadenas, y convertirá los operandos a cadenas si es posible para hacerlo.
Hay una entrada de MSDN sobre Concatenation operations in Visual Basic que lo explica:
El & operador (Visual Basic) se define solamente para operandos de cadena, y siempre se ensancha sus operandos de cadena, independientemente de la configuración de la opción Estricto . El operador & se recomienda para la concatenación de cadenas porque está definido exclusivamente para cadenas y reduce las posibilidades de que genere una conversión involuntaria.
Las dos expresiones son equivalentes, pero los operadores no lo son. +
se puede utilizar como un operador aritmético, así como para la concatenación de cadenas, &
solo se puede utilizar para este último.
bien entonces ¿por qué tener & en absoluto? –
Tienen un comportamiento diferente, vea ['+' operator] (http://msdn.microsoft.com/en-us/library/9c5t70w2%28v=VS.80%29.aspx) vs. ['&' operator] (http://msdn.microsoft.com/en-us/library/wfx50zyk%28v=VS.80%29.aspx). –
Considere un valor nulo concatenado con una cadena usando + – Fionnuala
Las expresiones no son las mismas incluso con cadenas si uno de los valores es nulo. – Fionnuala
El artículo de MSDN trata sobre Visual Basic, pero supongo que esto también funciona en VBA. No hay una página de documentación de VBA o no? –