--- id: op-assign name: Assignment category: operators kind: operator sig: name = value tip: Store into a var, a field, or an element — a statement, not an expression. order: 5 --- Assignment stores a value into a target — a `var` binding, a property field, or a buffer/slice element — with `target = value`. The compound forms `+=`, `-=`, `*=`, and `/=` update in place, so `score += 1` means `score = score + 1`. Assignment is a statement, not an expression: it produces no value, so you cannot write `if x = 0` (use `==` for the test). Only a mutable target accepts it — assigning to a `let` or `const` binding is a compile error — though you may still mutate through an immutable binding that holds a record or slice. ```ludic var score: int = 0 score = 10 score += 5 let current_position = new_position() current_position.column = current_position.column + 1 ```