¿Cuál es la diferencia entre + = y = +? Específicamente, en Java, pero en general también.¿Cuál es la diferencia entre + = y = +?
Respuesta
i += 4;
significa
i = i + 4; // increase i by 4.
Mientras
i =+ 4;
es equivalente a
i = +4; // assign 4 to i. the unary plus is effectively no-op.
(Ver http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.15.3 por lo que un unario + hace.)
+=
es conseguir e subasta:
a += 5; // adds 5 to the value of a
=+
en realidad no es un identificador válido por sí mismo, pero puede aparecer cuando se está utilizando el operador unario +
:
a =+ 5; // assigns positive five to a
Por supuesto, nadie * jamás * escribirá el segundo ejemplo, ya que el operador unario plus se une con el '5' y no tiene nada que ver con el operador' = 'así. Es vergonzoso, es lo que es. – jasonmp85
+=
es un operador que incrementa el lado izquierdo de la asignación por el valor del lado derecho y lo vuelve a asignar a la variable en el lado izquierdo. =+
no es un operador sino, de hecho, dos operadores: el operador de asignación =
y el operador unario plus +
(positivo) que denota el valor en el lado derecho es positivo. En realidad es redundante porque los valores son positivos a menos que se nieguen con menos unario. Debe evitar la construcción =+
, ya que es más probable que cause confusión que cualquier bien real.
= + no es un operador. El + es parte del número que sigue al operador de asignación.
int a = 4; int b = 4;
a + = 1; b = + 1;
System.out.println ("a =" + a + ", b =" + b);
Esto muestra la importancia de formatear correctamente el código para mostrar el intento.
Específicamente, en Java, pero en general también.
En Java x += <expr>;
es equivalente a x = x + (<expr>);
donde el operador +
puede ser el operador add aritmética o el operador de concatenación de cadenas, dependiendo del tipo de x
. Por otro lado, x =+ <expr>;
es realmente una manera fea de escribir x = + <expr>;
donde el operador +
es unario plus ... es decir, un no-op para tipos numéricos y un error de compilación en caso contrario.
La pregunta no responde en el caso general. Algunos idiomas admiten un operador "+ =" y otros no. De manera similar, algunos lenguajes pueden soportar un operador "= +" y otros no. Y algunos idiomas pueden permitir que una aplicación "sobrecargue" a uno u otro de los operadores. Simplemente no tiene sentido preguntar qué significa un operador "en general".
No sé qué quiere decir con "en general", pero en las primeras versiones del lenguaje C (que es de donde proviene la mayoría de la sintaxis de Java, a través de C++), =+
fue la sintaxis original de lo que luego se convirtió +=
, es decir, i =+ 4
era equivalente a i = i + 4
.
CRM (C Manual de referencia) es el documento describe el lenguaje C con =+
, =-
, =>>
y así sucesivamente.
+=
es una forma de incrementar números o String
en java. P.ej.
int i = 17;
i += 10; // i becomes 27 now.
No hay =+
operador. Pero si lo hace i =+ 10;
significa i
es igual a +10
que es igual a 10
.
Cuando tiene un + = b, eso significa que está agregando b a lo que ya está en a. Si está haciendo a = + b, sin embargo, está asignando + b a a.
int a=2;
int b=5;
a+=b;
System.out.println(a); //Prints 7
a=2;
b=5;
a=+b;
System.out.println(a); //Prints 5
- 1. ¿Cuál es la diferencia entre {0} y ""?
- 2. Cuál es la diferencia entre = y: =
- 3. ¿Cuál es la diferencia entre .ToString (+) y ""
- 4. Cuál es la diferencia entre $ (...) y `...`
- 5. ¿cuál es la diferencia entre:.! y: r !?
- 6. ¿Cuál es la diferencia entre ".equals" y "=="?
- 7. ¿Cuál es la diferencia entre dict() y {}?
- 8. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 9. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 10. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 11. ¿Cuál es la diferencia entre " " y ""?
- 12. Cuál es la diferencia entre $ y jQuery
- 13. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 14. Cuál es la diferencia entre la función() {}() y la función() {}()
- 15. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 16. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 17. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 18. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 19. ¿Cuál es la diferencia entre el colado y la coerción?
- 20. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 21. ¿Cuál es la diferencia entre el casting y la conversión?
- 22. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 23. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 24. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 25. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 26. ¿cuál es la diferencia entre el material y la textura?
- 27. ¿Cuál es la diferencia entre el marco y la arquitectura?
- 28. ¿Cuál es la diferencia entre la carpeta vim72 y vimfiles?
- 29. ¿cuál es la diferencia entre la lex y yacc
- 30. ¿Cuál es la diferencia entre la tubería y el zócalo?
Ocasionalmente, el plus adicional puede aportar un poco de claridad. Está claro que 5 significa 5 positivo, pero 0.0 significa cero positivo o negativo (hay ambos en IEEE 754). Así que escribir +0.0 puede ayudar en el raro caso de que importe. – jasonmp85
simplemente curioso ... ¿cómo se tomaría + (- 4) como? – Laz
@ jasonmp8.5: Pero si solo pide 0.0, obtendrá la versión positiva. –