Est-ce que «mutable» est identique au mot «modifiable» en relation avec des chaînes?

StackOverflow https://stackoverflow.com/questions/652678

  •  19-08-2019
  •  | 
  •  

Question

Lorsque nous parlons de chaînes comme étant mutables, cela signifie-t-il que le mot 'changeable' ou 'modifiable' est utilisé ou y a-t-il une nuance supplémentaire pour expliquer pourquoi ce jargon est utilisé à la place d'un mot plus simple comme 'modifiable'? / p>

Était-ce utile?

La solution

  • mutable
    • "responsable ou susceptible de modification ou d'altération."
  • modifiable
    • "modifier quelque peu la forme ou les qualités de; modifier partiellement; "

inversement

  • immuable
    • "non mutable; non modifiable; immuable "
  • non modifiable
    • "Impossible de modification de forme, de caractère ou de force"

Dans la programmation, vous entendez plus souvent les termes modifiable et immuable que modifiable et non modifiable. Cependant, je pense qu'il est prudent de dire que l'une ou l'autre manière a la même signification.

Mais quand à Rome ... vous devez donc utiliser mutable et immuable car ce sont les termes les plus couramment utilisés (du moins selon mon expérience).

Pourquoi ce choix? J'ai demandé à ma belle-mère (elle parle bien :-) et d'un point de vue autre que la programmation "mutable") est plus courte que "modifiable" ... me semble une raison suffisante.

Autres conseils

Je pense que le mot "mutable" est une bonne option pour cela.

Si vous utilisiez "modifiable", ce serait moins clair. Par exemple, si votre chaîne est un type attribué à un segment de mémoire, lorsque vous dites que vous modifiez la "chaîne", il n'est pas clair si vous modifiez les données sur le segment de mémoire (le contenu de la chaîne) ou le pointeur de segment de chaîne de la chaîne.

Cependant, "mutable" suggère que les données réelles de la chaîne sont en train de changer, pour moi. Je pense que c'est dû à la même racine que de muter. Si quelque chose est en train de muter, cela ne changera pas de regarder A à B (c.-à-d. Changer un pointeur), mais plutôt de muter lui-même, ou de devenir (de manière itérative) quelque chose qu'il n'était pas à l'origine.

Un objet mutable est un objet qui peut être modifié après avoir été créé. D'une certaine manière, il est synonyme de "modifiable". Le mot "mutable" signifie "responsable ou susceptible de modification ou d'altération". Je pense que ça sonne mieux que "modifiable"

Oui, mutable est le terme désignant un objet pouvant être modifié après sa création, alors que le terme immuable désigne un objet qui ne peut pas être modifié. Mutable signifie littéralement "capacité à muter". ce qui, à mon avis, correspond parfaitement au comportement des objets mutables.

Plus particulièrement en ce qui concerne les chaînes, dans une chaîne mutable, si vous changez le premier caractère de "A" à "B", vous avez toujours les mêmes octets en mémoire; l'un d'eux vient de prendre une valeur différente. Avec des chaînes immuables, c'est-à-dire en Java, un nouvel objet serait créé à un nouvel emplacement en mémoire, car l'objet d'origine ne pourrait pas être modifié.

Mutable est un mot décent pour décrire cela, et il a l’avantage de ne pas être chargé de significations ou d’interprétations du monde réel qui rendraient difficile l’utilisation précise.

Et puisque vous n'avez pas précisé le contexte spécifique dont vous parlez (et donc s'il vous plaît, pardonnez-moi s'il s'agit d'un champ d'application rampant) ...

Les chaînes dans .NET sont en particulier immuables et non mutables. Une fois qu'ils sont créés, c'est tout. Ils ne changent jamais. Si des tentatives de modification sont effectuées, de nouvelles chaînes sont créées et les anciennes sont libérées pour la récupération de place.

Voici une explication assez simple de mutable / immutable en utilisant Java comme exemple:

Mutable

  • peut être modifié sans réaffecter la mémoire
  • un StringBuffer documentation api est une version mutable de la classe de chaîne standard

  • pour changer la valeur standard de la classe String dont vous avez besoin pour réaffecter de la mémoire

Je n'ai jamais vraiment entendu parler d'utiliser le terme modifiable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top