When you do x += y, if x has a method called +=, then it's equivalent to x.+=(y), and if x doesn't have that method but it does have one called +, it's equivalent to x = x.+(y), which is why you need it to be a var, since you're modifying it
(btw this isn't specific to +, you can do it with any symbol)