Perguntas com a marcação «immutability»

145
Remover uma propriedade em um objeto imutável

Estou usando o Redux. No meu redutor, estou tentando remover uma propriedade de um objeto como este: const state = { a: '1', b: '2', c: { x: '42', y: '43' }, } E eu quero ter algo assim sem ter que alterar o estado original: const newState = { a: '1', b: '2', c: { x: '42', }, } Eu...

136
Enums em Javascript com ES6

Estou reconstruindo um projeto Java antigo em Javascript e percebi que não há uma boa maneira de criar enumerações em JS. O melhor que posso apresentar é: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); Os constmantimentos Colorsnão...

131
Vantagens da programação sem estado?

Recentemente, aprendi sobre programação funcional (especificamente Haskell, mas também passei por tutoriais sobre Lisp e Erlang). Embora tenha achado os conceitos muito esclarecedores, ainda não vejo o lado prático do conceito "sem efeitos colaterais". Quais são as vantagens práticas disso? Estou...

115
Java Immutable Collections

Da documentação do Java 1.6 Collection Framework : Coleções que não oferecem suporte a nenhuma operação de modificação (como add, removee clear) são chamadas de não modificáveis . [...] Coleções que garantem adicionalmente que nenhuma mudança no objeto Coleção será visível são chamadas de...

113
Como faço para criar uma classe imutável?

Estou trabalhando na criação de uma classe imutável. Marquei todas as propriedades como somente leitura. Eu tenho uma lista de itens da aula. Embora se a propriedade for somente leitura, a lista pode ser modificada. Expor o IEnumerable da lista o torna imutável. Eu queria saber quais são as...

103
O que significa imutável?

Se uma string é imutável, isso significa que .... (vamos supor que o JavaScript) var str = 'foo'; alert(str.substr(1)); // oo alert(str); // foo Isso significa que, ao chamar métodos em uma string, ele retornará a string modificada, mas não mudará a string inicial? Se a string fosse mutável,...

100
É Inteiro Imutável

Eu sei que isso é provavelmente muito estúpido, mas muitos lugares afirmam que a classe Integer em Java é imutável, mas o seguinte código: Integer a=3; Integer b=3; a+=b; System.out.println(a); Executa sem problemas, fornecendo o resultado (esperado) 6. Portanto, efetivamente, o valor de a foi...

99
O Python tem uma lista imutável?

O python tem listas imutáveis? Suponha que eu deseje ter a funcionalidade de uma coleção ordenada de elementos, mas que desejo garantir que não mudará, como isso pode ser implementado? As listas são ordenadas, mas podem sofrer mutações.

96
Remova o valor do objeto sem mutação

Qual é uma maneira boa e curta de remover um valor de um objeto em uma chave específica sem alterar o objeto original? Eu gostaria de fazer algo como: let o = {firstname: 'Jane', lastname: 'Doe'}; let o2 = doSomething(o, 'lastname'); console.log(o.lastname); // 'Doe' console.log(o2.lastname);...