¿Es 'mutable' lo mismo que la palabra 'modificable' en relación con las cadenas?

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

  •  19-08-2019
  •  | 
  •  

Pregunta

Cuando hablamos de que las cadenas son mutables, ¿esto es sinónimo de usar la palabra 'modificable' o 'modificable' o hay algún matiz adicional para explicar por qué se usa esta jerga en lugar de una palabra más simple como 'modificable'?

¿Fue útil?

Solución

  • mutable
    • `` responsable o sujeto a cambios o alteraciones ''
  • modificable
    • " para cambiar algo la forma o las cualidades de; alterar parcialmente; "

por el contrario

  • inmutable
    • " no mutable; inmutable inmutable "
  • no modificable
    • " incapaz de ser modificado en forma, carácter o fuerza "

En la programación, a menudo escucha los términos mutable e inmutable que modificable e inmodificable. Sin embargo, creo que es seguro decir que de cualquier manera tiene el mismo significado.

Pero cuando estés en Roma ... deberías usar mutable e inmutable, ya que son los términos más utilizados (al menos en mi experiencia).

¿Por qué esa elección? Le pregunté a mi suegra (le gustan las palabras :-) y desde un punto de vista no programable '' mutable '' es más corto que "modificable" ... parece una razón suficiente para mí.

Otros consejos

Creo que la palabra "mutable" es una buena opción para esto.

Si utilizara "modificable", sería menos claro. Por ejemplo, si su cadena es un tipo asignado al montón, cuando dice que está modificando la "cadena", no está claro si está cambiando los datos en el montón (el contenido de la cadena) o el puntero del montón de la cadena.

Sin embargo, "mutable" sugiere que los datos reales de la cadena están cambiando, para mí. Creo que se debe a que tiene la misma raíz que mutar. Si algo está mutando, no está cambiando de mirar A a mirar B (es decir, cambiar un puntero), sino mutar a sí mismo o convertirse (iterativamente) en algo que no era originalmente.

Un objeto mutable es un objeto que puede modificarse después de haber sido creado. Entonces, en cierto modo, es sinónimo de "modificable". La palabra "mutable" significa "responsable o sujeto a cambios o alteraciones". Creo que suena mejor que "modificable".

Sí, mutable es el término para un objeto que se puede cambiar después de su creación, mientras que inmutable se refiere a un objeto que no puede cambiar. Mutable significa literalmente "capacidad de mutar". que creo que encaja perfectamente con el comportamiento de los objetos mutables.

Específicamente en relación con las cadenas, en una cadena mutable, si cambia el primer carácter de 'A' a 'B', todavía está tratando con los mismos bytes en la memoria; uno de ellos acaba de tomar un valor diferente. Con cadenas inmutables, es decir, en Java, se crearía un nuevo objeto en una nueva ubicación en la memoria, porque el original no se puede cambiar.

Mutable es una palabra decente para describir eso, y tiene la ventaja de no estar cargado de significados o interpretaciones del mundo real que dificultarían su uso preciso.

Y como usted no señaló el contexto específico del que está hablando (y, por lo tanto, perdóneme si esto es un avance de alcance) ...

Las cadenas en .NET específicamente son inmutables, no mutables. Una vez que se crean, eso es todo. Ellos nunca cambian. Si se realizan intentos de cambio, se crean nuevas cadenas y se liberan las viejas para la recolección de basura.

Aquí hay una explicación bastante simple de mutable / inmutable usando Java como ejemplo:

Mutable

  • se puede cambiar sin reasignar memoria
  • a StringBuffer documentación api es una versión mutable de la clase de cadena estándar

  • para cambiar el valor estándar de la clase String que necesita para reasignar memoria

Nunca he oído hablar del uso del término modificable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top