java - What happens if you remove the space between the + and ++ operators? -
edit 1
disclaimer: i know that +++
is not operator +
, ++
operators without space. know there's no reason use this; question out of curiosity.
so, i'm interested see if space between +
, ++var
required in java.
here test code:
int = 0; system.out.println(i); = +++i; system.out.println(i);
this prints out:
0 1
which works expect, if there space between first , second +
.
then, tried string concatenation:
string s1 = "s " + ++i; system.out.println(s1); // string s2 = "s " +++i;
this prints out:
s 2
but if third line uncommented, code not compile, error:
problem3.java:13: unexpected type required: variable found : value string s2 = "s " +++i; ^ problem3.java:13: operator + cannot applied <any>,int string s2 = "s " +++i; ^
what's causing difference in behavior between string concatenation , integer addition?
edit 2
as discussed in abhijit's follow-up question, rule people have mentioned (the larger token ++ parsed first, before shorter token ++) discussed in this presentation appears called munchy munchy rule.
there no +++
operator. have there postfix ++
operator followed infix +
operator. compilation error because postfix ++
can applied variable, , "s "
isn't variable.
since mean infix +
operator followed prefix ++
operator, need put space in between operators.
actually, should anyway. +++
crime against readability!!!
Comments
Post a Comment