Mutable

Définition, exemples et bonnes pratiques

À retenir

  • Désigne une donnée dont on peut modifier la valeur interne directement.
  • Permet des gains de performance en évitant les copies inutiles.
  • Nécessite de la prudence pour éviter que plusieurs fonctions ne modifient la même donnée par erreur.

En programmation, un objet est dit mutable si son contenu peut être modifié après sa création sans que l'on ait besoin de créer un tout nouvel objet en mémoire. C'est comme un tableau blanc : on peut effacer et réécrire une partie de l'information sans changer le support lui-même.

Étymologie

Vient du latin mutare qui signifie « changer » ou « déplacer ». En informatique, le terme s'est imposé via l'anglais technique pour désigner la capacité de transformation d'une structure de données durant l'exécution d'un code.

Exemples d'usage

  • Une liste en Python : vous pouvez ajouter, supprimer ou modifier un élément à l'intérieur sans changer l'identifiant de la liste.
  • Un objet en JavaScript : vous pouvez ajouter une nouvelle propriété ou changer la valeur d'une propriété existante dynamiquement.

Cas d'usage

On utilise des structures mutables lorsqu'une donnée doit évoluer fréquemment, comme le score d'un joueur, une liste de courses ou l'état d'un formulaire. Cela permet d'économiser de la mémoire vive en évitant de dupliquer des données volumineuses à chaque changement.

Bonnes pratiques

Il faut rester vigilant face aux effets de bord : si deux parties d'un programme utilisent le même objet mutable, une modification faite par l'une impactera l'autre, ce qui peut créer des bugs difficiles à identifier. Pour plus de sécurité, on privilégie parfois l'immuabilité.

Synonymes

modifiable changeable muable

Antonymes

immuable immutable constant

Conseil

Pour bien comprendre, essayez de modifier un élément d'une liste (mutable) puis tentez de modifier un seul caractère d'une chaîne de texte (souvent immuable) : vous verrez que le langage réagit différemment.

Questions fréquentes

Est-ce que toutes les variables sont mutables ?

Non. Par exemple, dans de nombreux langages, les chaînes de caractères (Strings) ou les nombres sont immuables : toute modification crée en réalité un nouvel objet.

Pourquoi dit-on que le mutable est risqué ?

Parce qu'un objet mutable peut être modifié 'en place'. Si vous passez cet objet à une fonction, elle peut le transformer sans que vous ne vous en rendiez compte, changeant ainsi l'état global du programme.