Pytania oznaczone «immutability»

145
Niezmiennie usuwa właściwość z obiektu

Używam Redux. W moim reduktorze próbuję usunąć właściwość z obiektu takiego: const state = { a: '1', b: '2', c: { x: '42', y: '43' }, } I chcę mieć coś takiego bez konieczności modyfikowania pierwotnego stanu: const newState = { a: '1', b: '2', c: { x: '42', }, } Próbowałem: let...

136
Wyliczenia w Javascript z ES6

Odbudowuję stary projekt Java w Javascript i zdałem sobie sprawę, że nie ma dobrego sposobu na wykonanie wyliczeń w JS. Najlepsze, co mogę wymyślić, to: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); constUtrzymuje Colorsprzed...

133
Zalety programowania bezstanowego?

Niedawno uczyłem się programowania funkcjonalnego (szczególnie Haskell, ale przeszedłem też przez samouczki na temat Lisp i Erlang). Chociaż uważam te koncepcje za bardzo pouczające, nadal nie widzę praktycznej strony koncepcji „bez skutków ubocznych”. Jakie są praktyczne zalety tego...

123
Szybka zmiana parametru metody?

Jak mogę sobie poradzić z tym błędem bez tworzenia dodatkowej zmiennej? func reduceToZero(x:Int) -> Int { while (x != 0) { x = x-1 // ERROR: cannot assign to 'let' value 'x' } return x } Nie chcę tworzyć dodatkowej zmiennej tylko po to, aby przechowywać wartość x. Czy w ogóle można robić...

115
Niezmienne kolekcje Java

Z dokumentacji Java 1.6 Collection Framework : Kolekcje, które nie obsługują żadnych operacji modyfikacji (takich jak add, removei clear) są określane jako niemodyfikowalne . […] Kolekcje, które dodatkowo gwarantują, że żadna zmiana w obiekcie Collection nigdy nie będzie widoczna, nazywane są...

113
Jak utworzyć niezmienną klasę?

Pracuję nad stworzeniem niezmiennej klasy. Oznaczyłem wszystkie właściwości jako tylko do odczytu. Mam listę przedmiotów w klasie. Chociaż jeśli właściwość jest tylko do odczytu, lista może być modyfikowana. Ujawnienie IEnumerable listy sprawia, że ​​jest ona niezmienna. Chciałem wiedzieć,...

104
Co znaczy niezmienny?

Jeśli ciąg jest niezmienny, czy to oznacza, że ​​... (załóżmy, że JavaScript) var str = 'foo'; alert(str.substr(1)); // oo alert(str); // foo Czy to oznacza, że ​​wywołując metody na łańcuchu, zwróci zmodyfikowany ciąg, ale nie zmieni początkowego ciągu? Jeśli ciąg był zmienny, czy to...

102
Is Integer Immutable

Wiem, że jest to prawdopodobnie bardzo głupie, ale wiele miejsc twierdzi, że klasa Integer w Javie jest niezmienna, ale następujący kod: Integer a=3; Integer b=3; a+=b; System.out.println(a); Wykonuje się bez żadnych problemów dając (oczekiwany) wynik 6. W efekcie wartość a uległa zmianie....

102
Usuń wartość z obiektu bez mutacji

Jaki jest dobry i krótki sposób na usunięcie wartości z obiektu o określonym kluczu bez mutowania oryginalnego obiektu? Chciałbym zrobić coś takiego: let o = {firstname: 'Jane', lastname: 'Doe'}; let o2 = doSomething(o, 'lastname'); console.log(o.lastname); // 'Doe' console.log(o2.lastname);...

93
Czy Python ma niezmienną listę?

Czy Python ma niezmienne listy? Załóżmy, że chcę mieć funkcjonalność uporządkowanego zbioru elementów, ale które chcę zagwarantować, że się nie zmieni, jak można to zaimplementować? Listy są uporządkowane, ale można je modyfikować.

86
Zastąp wiele elementów ciągu w C #

Czy jest lepszy sposób na zrobienie tego ... MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ") .Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower(); Rozszerzyłem klasę string, aby ograniczyć ją do jednego zadania, ale czy jest szybszy sposób? public...