Вопросы с тегом «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» должен быть заморожен словарем, он должен иметь keys, values, …

15
Неизменно удалить свойство объекта
Я использую Redux. В моем редукторе я пытаюсь удалить свойство из такого объекта: const state = { a: '1', b: '2', c: { x: '42', y: '43' }, } И я хочу иметь что-то подобное, не изменяя исходное состояние: const newState = { a: '1', b: '2', c: { x: …

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
Swift сделать параметр метода изменяемым?
Как мне справиться с этой ошибкой без создания дополнительной переменной? 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 Collection Framework : Коллекции, которые не поддерживают какие-либо операции модификации (например add, removeи clear), называются неизменяемыми . [...] Коллекции, которые дополнительно гарантируют, что никакие изменения в объекте Collection никогда не будут видны, называются неизменяемыми . Второй критерий меня немного смущает. Учитывая, что первая коллекция не может …

6
Как создать неизменяемый класс?
Я работаю над созданием неизменяемого класса. Я пометил все свойства как доступные только для чтения. У меня есть список предметов в классе. Хотя, если свойство доступно только для чтения, список можно изменить. Открытие IEnumerable списка делает его неизменяемым. Я хотел знать, каковы основные правила, которым нужно следовать, чтобы сделать класс …
113 c#  .net  immutability 


2
Как обойти изменчивость в moment.js?
Я столкнулся с проблемой, когда мне нужно сохранить начальные значения объекта момента, но у меня возникли проблемы с предотвращением изменения моей переменной вместе с исходным объектом. К сожалению, Object.freeze () не работает, потому что moment.js возвращает ошибку «Недопустимая дата», когда я пытаюсь ее отформатировать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.