language else string vbscript string-concatenation

string - language - shopify if else



¿Cuál es la diferencia entre VBScript''s+y & operator? (4)

El operador + está sobrecargado, mientras que el operador & no está. El operador & solo hace concatenación de cadenas. En algunos círculos, el operador & se usa como una mejor práctica porque no es ambiguo y, por lo tanto, no puede tener ningún efecto involuntario como resultado de la sobrecarga.

En cada sitio que habla de VBScript, el operador '' & '' aparece como el operador de concatenación de cadenas. Sin embargo, en algún código que he heredado recientemente, veo que se está utilizando el operador '' + '' y no veo ningún error como resultado de esto. ¿Es esta una alternativa aceptada?


El operador & hace concatenación de cadenas, es decir, obliga a los operandos a convertirse en cadenas (como llamar CStr a CStr ). + , a su vez, fuerza la suma si una de las expresiones es numérica. Por ejemplo:

1 & 2

te da 12 , mientras que

1 + 2 "1" + 2 1 + "2"

te doy 3

Por lo tanto, se recomienda utilizar & para la concatenación de cadenas, ya que elimina la ambigüedad.


En algunos casos, el + lanzará una excepción; por ejemplo lo siguiente:

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel) ''fvalue is a floating point number MsgBox "Received Event: " + fvalue End Sub

Obtendrá una excepción cuando el origen de objeto COM active el evento; debe hacer una de las siguientes acciones:

MsgBox "Received Event: " & fvalue

o

MsgBox "Received Event: " + CStr(fvalue)

Puede ser mejor en cualquier caso usar CStr(value) ; pero el uso y los comentarios anteriores para la concatenación de cadenas es casi siempre la mejor práctica.


+ operador + puede ser contraproducente cuando las cadenas pueden interpretarse como números. Si no quieres sorpresas desagradables, utiliza y para concatenar cadenas.