Pytania otagowane jako immutability

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 *.




17
Co oznacza niezmienny?
To może być najgłupsze pytanie, jakie kiedykolwiek zadano, ale myślę, że jest to dość mylące dla początkującego Javy. Czy ktoś może wyjaśnić, co oznacza niezmienny ? Dlaczego jest Stringniezmienny? Jakie są zalety / wady niezmiennych obiektów? Dlaczego zmienny obiekt, taki jak StringBuilderpreferowany, zamiast String i vice-wers? Dobry przykład (w Javie) …

15
Czy łańcuch Java jest naprawdę niezmienny?
Wszyscy wiemy, że Stringjest niezmienny w Javie, ale sprawdź następujący kod: String s1 = "Hello World"; String s2 = "Hello World"; String s3 = s1.substring(6); System.out.println(s1); // Hello World System.out.println(s2); // Hello World System.out.println(s3); // World Field field = String.class.getDeclaredField("value"); field.setAccessible(true); char[] value = (char[])field.get(s1); value[6] = 'J'; value[7] = …


30
Jaka jest najlepsza nazwa niemutującej metody „dodawania” w niezmiennej kolekcji?
Przepraszam za gofrowny tytuł - gdybym mógł wymyślić zwięzły tytuł, nie musiałbym zadawać pytania. Załóżmy, że mam niezmienny typ listy. Ma operację, Foo(x)która zwraca nową niezmienną listę z określonym argumentem jako dodatkowy element na końcu. Aby stworzyć listę ciągów znaków z wartościami „Cześć”, „niezmienny”, „świat” możesz napisać: var empty = …

3
Co robi komentarz „frozen_string_literal: true”?
To jest rspecbinstub w moim katalogu projektu. #!/usr/bin/env ruby begin load File.expand_path("../spring", __FILE__) rescue LoadError end # frozen_string_literal: true # # This file was generated by Bundler. # # The application 'rspec' is installed as part of a gem, and # this file is here to facilitate running it. # …

26
Niezmienność ciągów w Javie
Rozważ następujący przykład. String str = new String(); str = "Hello"; System.out.println(str); //Prints Hello str = "Help!"; System.out.println(str); //Prints Help! Teraz w Javie obiekty String są niezmienne. Dlaczego więc obiektowi strmożna przypisać wartość „Pomoc!”. Czy nie jest to sprzeczne z niezmiennością ciągów w Javie? Czy ktoś może mi wyjaśnić dokładną …


11
Dlaczego niezmienność jest tak ważna (lub potrzebna) w JavaScript?
Obecnie pracuję nad platformami React JS i React Native . W połowie drogi natknąłem się na bibliotekę Immutability lub Immutable-JS , kiedy czytałem o implementacji Flux i Redux na Facebooku. Pytanie brzmi: dlaczego niezmienność jest tak ważna? Co jest złego w mutowaniu obiektów? Czy to nie ułatwia rzeczy? Podając przykład, …

16
Typy niezmienne a zmienne
Jestem zdezorientowany, czym jest niezmienny typ. Wiem, że floatobiekt jest uważany za niezmienny, z tego rodzaju przykładem z mojej książki: class RoundFloat(float): def __new__(cls, val): return float.__new__(cls, round(val, 2)) Czy jest to uważane za niezmienne ze względu na strukturę / hierarchię klas ?, co floatoznacza, że znajduje się na szczycie …

24
Jak zrobić niezmienny obiekt w Pythonie?
Chociaż nigdy tego nie potrzebowałem, uderzyło mnie tylko, że utworzenie niezmiennego obiektu w Pythonie może być nieco trudne. Nie możesz po prostu nadpisać __setattr__, ponieważ wtedy nie możesz nawet ustawić atrybutów w __init__. Podklasowanie krotki to sztuczka, która działa: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) @property …


11
Obiekty zmienne a niezmienne
Próbuję poradzić sobie z obiektami zmiennymi i niezmiennymi. Korzystanie z obiektów zmiennoprzecinkowych jest bardzo źle odbierane (np. Zwracanie tablicy ciągów z metody), ale mam problem ze zrozumieniem, jakie są tego negatywne skutki. Jakie są najlepsze praktyki dotyczące używania obiektów mutowalnych? Czy należy ich unikać, kiedy tylko jest to możliwe?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.