2010-05-30 46 views

Respuesta

29
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.)

+2

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

+0

simplemente curioso ... ¿cómo se tomaría + (- 4) como? – Laz

+0

@ jasonmp8.5: Pero si solo pide 0.0, obtendrá la versión positiva. –

7

+= 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 
+4

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

9

+= 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.

5

= + 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.

3

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".

2

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.

3

+= 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.

1

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 
Cuestiones relacionadas