Affectation (informatique)
# Affectation (informatique)

En algorithmique et en programmation informatique, une affectation, aussi appelée assignation par anglicisme, est une structure qui permet d'attribuer une valeur à une variable.

Il s'agit d'une structure particulièrement courante en programmation impérative, et dispose souvent pour cette raison d'une notation courte et infixée, comme x = expr​ ou x := expr​. Dans certains langages, le symbole est considéré comme un opérateur d'affectation, et la structure entière peut alors être utilisée comme une expression. D'autres langages considèrent une affectation comme une instruction et ne permettent pas cet usage.

## Notation

La structure d'affectation est le plus souvent notée x = expr​ ou x := expr​.

| x=expr | (sans espace autour du caractère =) Tous les shell unix. Par exemple {Bourne shell, Bash} |
| - | - |
| x = expr | Fortran, PL/I, C (et ses descendants comme C++, Java, etc.), Python, Go (pour des variables préalablement déclarées), R, haskell, etc. |
| x := expr | ALGOL (et ses dérivés), Simula, CPL, BCPL, Pascal, PL/M, Ada, Smalltalk, $Eiffel^,,$ Oberon, Dylan, Go (initialisation et déclaration simultanées) Io, ML, etc. |

D'autres langages utilisent une notation en forme de flèche ou un mot-clé.

| x <- expr | F#, OCaml, R, S |
| - | - |
| x <<- expr | R |
| assign("x", expr) | R |
| x ← expr | APL, Smalltalk |
| x =: expr | J |
| let x = expr | Rust |
| LET x = expr | BASIC |
| let x := expr | XQuery |
| set x to expr | AppleScript |
| set x = expr | C shell |
| Set-Variable x (expr) | Windows PowerShell |
| x : expr | Macsyma, Maxima, Rebol |

Certains langages placent l'expression à gauche de l'opérateur, et l'identificateur à droite.

| MOVE expr TO x | COBOL |
| - | - |
| expr → x | TI-Basic, Casio Basic |
| expr -> x | R |
| put expr into x | LiveCode |

Certains langages, comme $Lisp^,$ ou Tcl, utilisent une notation préfixée.

| (setf x expr) | Lisp |
| - | - |
| (set! x expr) | $Scheme^,^,$ |
| set x expr | Tcl |
| expr x ! | Forth |
