É 'mutável' o mesmo que a palavra 'modificável' em relação às cordas?

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

  •  19-08-2019
  •  | 
  •  

Pergunta

Quando falamos de cordas como sendo mutável, é este sinônimo de usar a palavra 'mutável' ou 'modificável' ou há alguma nuance adicional para explicar por que isso jargão é usado em vez de uma palavra simples como 'modificável'

Foi útil?

Solução

  • mutável
    • "responsável ou sujeita a mudança ou alteração."
  • modificável
    • "a mudar um pouco a forma ou qualidades de; alterar parcialmente;"

inversamente

  • imutável
    • "não mutável; imutável; imutável"
  • unmodifiable
    • "incapaz de ser modificado de forma ou de caráter ou força"

Na programação você mais frequentemente ouvir os termos mutáveis ??e imutáveis ??do que você faz modificáveis ??e não modificáveis. No entanto eu acho que é seguro dizer que de qualquer forma tem o mesmo significado.

Mas quando em Roma ... então você deve usar mutável e imutável, pois são os termos mais comumente utilizados (pelo menos na minha experiência).

Quanto ao porquê de essa escolha? Perguntei a minha sogra (ela está em cima de palavras :-) e de um ponto não-programação de vista "mutável" é mais curto, em seguida, "modificável" ... parece provável suficiente de uma razão para mim.

Outras dicas

Eu acho que a palavra "mutável" é uma boa opção para isso.

Se você usou "modificável", seria menos clara. Por exemplo, se sua string é um tipo alocado pilha, quando você diz que está modificando a "string", não está claro se você está mudando os dados na pilha (o conteúdo da string) ou ponteiro da área do string.

No entanto, "mutável" sugere que os dados reais da corda está mudando, para mim. Eu acho que é devido a ser a mesma raiz que a mutação. Se algo está em mutação, não está mudando de olhar para à olhar para B. (Ie: mudando um ponteiro), mas sim mutação em si, ou tornar-se (de forma iterativa) algo que não era originalmente

Um objeto mutável é um objeto que pode ser modificado após ele ter sido criado. Então, de certa forma, é sinônimo de "modificável". A palavra significa "mutáveis" "responsável ou sujeita a mudança ou alteração." Acho que soa melhor do que "modificável".

Sim, mutável é o termo para um objeto que é capaz de ser alterado depois que ele é criado, enquanto imutável refere-se a um objeto que não pode mudar. Mutável, literalmente, significa "capacidade de mutação", que eu acho que se encaixa perfeitamente com a forma como objetos mutáveis ??comportar.

Especificamente em relação às cordas, em uma string mutável, se você alterar o primeiro personagem de 'A' a 'B', você ainda está lidando com os mesmos bytes de memória; um deles acaba de dar um valor diferente. Com cordas imutáveis, ou seja, em Java, um novo objeto seria criado em um novo local na memória, porque o original não pode ser alterado.

Mutante é uma palavra decente para descrever isso, e tem a vantagem de não ser carregado com significados reais ou interpretações que tornaria mais difícil de usar com precisão.

E desde que você não apontar o contexto específico que você está falando de (e assim por favor, perdoe-me se este é o rastejamento do espaço) ...

Cordas em .NET especificamente são imutáveis, não mutável. Uma vez que são criados, é isso. Eles nunca mudam. Se as tentativas de mudanças são feitas, novas cordas são criados e os antigos são liberados para coleta de lixo.

Aqui está uma explicação simples bonita de mutável / imutável usando java como um exemplo:

mutável

  • pode ser alterado sem realocação de memória
  • a StringBuffer api documentação é uma versão mutável da classe string padrão

  • para alterar o valor padrão da classe String você precisa de memória realocar

Eu realmente nunca ouvi falar de usar o modificável prazo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top