Niezmienność to brak możliwości modyfikowania danych po ich utworzeniu. Zamiast tego zmiany są dokonywane poprzez kopiowanie danych. Właściwością niezmiennych danych jest to, że są one * referencyjnie przezroczyste *.
Z przeglądu struktury kolekcji : Kolekcje, które nie obsługują operacji modyfikacji (takich jak add, removei clear) są nazywane niemodyfikowalnymi . Kolekcje, których nie można modyfikować, można modyfikować . Kolekcje, które dodatkowo gwarantują, że żadna zmiana w Collectionobiekcie nie będzie widoczna, nazywane są niezmiennymi . Kolekcje, które nie są niezmienne, są …
Mam tę funkcję API: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) Nie podoba mi się to. Ponieważ kolejność parametrów staje się niepotrzebnie znacząca. Trudniej jest dodawać nowe pola. Trudniej jest zobaczyć, co się dzieje. Trudniej jest dokonać refaktoryzacji metody na …
Czy istnieje niezmienna alternatywa dla pierwotnych tablic w Javie? Tworzenie prymitywnej tablicy w finalrzeczywistości nie uniemożliwia zrobienia czegoś takiego final int[] array = new int[] {0, 1, 2, 3}; array[0] = 42; Chcę, aby elementy tablicy były niezmienne.
Zamrożony zestaw to zamrożony zestaw. Zamrożona lista może być krotką. Czym byłby zamrożony dyktando? Niezmienny, haszowalny dykt. Myślę, że może to być coś podobnego collections.namedtuple, ale to bardziej przypomina dyktowanie zamrożonych kluczy (półzamrożone dyktowanie). Prawda? A „frozendict” powinny być zamrożone słownik, powinien on mieć keys, values, get, itd., A także …
Używam właściwości zaimplementowanych automatycznie. Wydaje mi się, że najszybszym sposobem rozwiązania tego problemu jest zadeklarowanie własnej zmiennej bazowej? public Point Origin { get; set; } Origin.X = 10; // fails with CS1612 Komunikat o błędzie: Nie można zmodyfikować wartości zwracanej „wyrażenie”, ponieważ nie jest to zmienna Podjęto próbę zmodyfikowania typu …
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 przeniesiony i zamrażania zapobiega mutacji klucze i wartości. Używam symboli, więc …
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 rozwiązania? Próbuję myśleć funkcjonalnie, ale są sytuacje, które wydają się zbyt skomplikowane …
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 …
Wydaje się, że mam problemy z przesyłaniem danych do tablicy stanów. Staram się to osiągnąć w ten sposób: this.setState({ myArray: this.state.myArray.push('new value') }) Ale uważam, że to niewłaściwy sposób i powoduje problemy ze zmiennością?
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ą niezmiennymi . Drugie kryterium trochę mnie dezorientuje. Biorąc pod …
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ć, jakie są podstawowe zasady, których należy przestrzegać, aby klasa była niezmienna?
Zrozumiałem, że ciągi znaków w Pythonie są niezmienne. Wypróbowałem następujący kod: a = "Dog" b = "eats" c = "treats" print a, b, c # Dog eats treats print a + " " + b + " " + c # Dog eats treats print a # Dog a = …
Napotkałem problem polegający na tym, że muszę przechowywać wartości początkowe obiektu chwili, ale mam pewne problemy z zapobieganiem zmianie mojej zmiennej wraz z oryginalnym obiektem. Niestety Object.freeze () nie działa, ponieważ moment.js zwraca błąd „Nieprawidłowa data”, gdy próbuję to sformatować.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.