Запитання з тегом «immutability»

Незмінюваність - це неможливість змінювати дані після їх створення. Натомість зміни вносяться шляхом копіювання даних. Властивість незмінних даних полягає в тому, що вони * референтно прозорі *.

7
Незмінна колекція проти немодифікованої
З огляду Рамок колекцій : Колекції, які не підтримують операції з модифікації (наприклад add, removeта clear), називаються незмінними . Колекції, які не можуть бути модифіковані, можуть змінюватися . Колекції, які додатково гарантують, що жодні зміни Collectionоб’єкта не будуть помітні, називаються незмінними . Колекції, які не є непорушними, змінюються . Я …

13
Як уникнути проблеми "занадто багато параметрів" в дизайні API?
У мене є така функція API: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) Мені це не подобається. Оскільки порядок параметрів стає непотрібним. Додавати нові поля стає важче. Важче зрозуміти, що передається навколо. Метод рефактора важче розділити на менші частини, оскільки …

14
Незмінний масив на Java
Чи є незмінна альтернатива примітивним масивам на Java? Створення примітивного масиву finalнасправді не заважає зробити щось подібне final int[] array = new int[] {0, 1, 2, 3}; array[0] = 42; Я хочу, щоб елементи масиву були незмінними.

14
Що таке "заморожений дикт"?
Заморожений набір - це заморожений набір. Заморожений список може бути кортежем. Що б застигла дикта? Незмінний, доступний диктант. Я думаю, це може бути щось на кшталт collections.namedtuple, але це більше схоже на дикт із замороженими ключами (напівзаморожений дікт). Чи не так? А «frozendict» повинен бути заморожений словником, він повинен мати …

8
Помилка: "Неможливо змінити повернене значення" c #
Я використовую властивості, реалізовані автоматично. Я думаю, найшвидший спосіб виправити наступне - оголосити власну змінну резервного копіювання? public Point Origin { get; set; } Origin.X = 10; // fails with CS1612 Повідомлення про помилку: Неможливо змінити повернене значення 'вираження', оскільки воно не є змінною Була зроблена спроба змінити тип значення, …


13
Перераховує Javascript з ES6
Я відновлював старий проект Java в Javascript і зрозумів, що не існує хорошого способу зробити перерахунки в JS. Найкраще, що я можу придумати, це: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); constЗберігає Colorsвід бути змінені, і заморожування він запобігає мутує ключі і значення. Я використовую …

8
Переваги програмування без громадянства?
Нещодавно я дізнався про функціональне програмування (зокрема Haskell, але я також пройшов підручники на Lisp та Erlang). Хоча я вважав, що ці поняття є дуже освічуючими, я все ще не бачу практичної сторони концепції "без побічних ефектів". Які практичні переваги від цього? Я намагаюся думати у функціональному мисленні, але є …

7
Швидкий зробити параметр методу змінним?
Як я можу впоратися з цією помилкою без створення додаткової змінної? func reduceToZero(x:Int) -> Int { while (x != 0) { x = x-1 // ERROR: cannot assign to 'let' value 'x' } return x } Я не хочу створювати додаткову змінну просто для збереження значення x. Чи можливо навіть …

10
Правильний спосіб натиснути на масив стану
У мене, здається, виникають проблеми з підштовхуванням даних у масив стану. Я намагаюся досягти цього таким чином: this.setState({ myArray: this.state.myArray.push('new value') }) Але я вважаю, що це неправильно і викликає проблеми з незмінністю?


6
Незмінні колекції Java
З базової документації колекції Java 1.6 : Колекції, які не підтримують жодних операцій з модифікації (наприклад add, removeта clear), називаються немодифікованими . [...] Колекції, які додатково гарантують, що жодні зміни об’єкта колекції не будуть помітні, називаються незмінними . Другий критерій мене трохи бентежить. З огляду на те, що перша колекція …

6
Як створити незмінний клас?
Я працюю над створенням непорушного класу. Я позначив усі властивості як лише для читання. У мене є список предметів у класі. Хоча, якщо властивість є лише для читання, список можна змінити. Розкриття IE численного списку робить його незмінним. Мені хотілося знати, які основні правила потрібно дотримуватися, щоб зробити клас незмінним?
113 c#  .net  immutability 


2
Як мені подолати мутабельність у moment.js?
Я зіткнувся з проблемою, коли мені потрібно зберігати початкові значення об'єкта моменту, але у мене виникають певні проблеми, щоб запобігти зміні моєї змінної разом з оригінальним об'єктом. На жаль, Object.freeze () не працює, оскільки moment.js повертає помилку "Недійсна дата", коли я намагаюся це відформатувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.