Описание тега immutability
Неизменяемость - это невозможность изменять данные после их создания. Вместо этого изменения производятся путем копирования данных. Свойство неизменяемых данных состоит в том, что они * ссылочно прозрачны *.
2
ответа
Существуют ли какие-либо шаблоны для реализации изменяемых и неизменяемых версий объекта-держателя?
В моем приложении у меня есть несколько типов объектов- держателей, основной целью которых является хранение разнородных связанных данных. Их жизненные циклы можно разделить на две части: Сбор данных, как только они становятся доступными; Предоставл…
30 окт '14 в 20:41
3
ответа
Должен ли GetHashCode быть реализован для IEquatable<T> на изменяемых типах?
Я реализую IEquatable<T>и мне трудно найти консенсус по GetHashCode переопределить в изменчивом классе. Следующие ресурсы обеспечивают реализацию где GetHashCode будет возвращать различные значения в течение времени жизни объекта, если объект …
01 мар '18 в 17:43
1
ответ
Создание неизменных экземпляров и изменение копий идиоматическим способом
Я хотел бы условно создавать копии экземпляра объекта в зависимости от информации, внешней по отношению к этому экземпляру. Большая часть информации в копиях будет такой же, как и оригинал, но часть информации потребуется изменить. Эта информация пе…
05 апр '11 в 16:28
2
ответа
Коллекции Google (библиотеки Guava): ImmutableSet/List/Map and Filtering
Предположим, что вы хотите создать копию ImmutableSet/List/Map объект, но отфильтровать некоторые оригинальные записи. Одним из способов реализации этого является следующее: ImmutableList.copyOf(Iterables.filter(myObject, myObject.EQUALS)); где myOb…
30 май '11 в 13:29
0
ответов
Понимание операции добавления ListBuffer в Scala. Изменчивый или неизменный хвост?
Вот код из метода добавления ListBuffers: def += (x: A): this.type = { ... last0 = new :: (x, Nil) last1.tl = last0 <-------- compiler is complaining Reassignment to val ... } Когда я нажимаю Ctrl+ клик по классу ColonColon (который по сути являе…
12 апр '17 в 16:11
4
ответа
Имеет ли значение, каким образом используется строковый метод?
Codeacademy учит, что вы можете объединить несколько методов как таковые: user_input.method1.method2.method3 Однако в следующем уроке они отображают некоторые методы, подобные этому: user_input = gets.chomp user_input.downcase! Я объединил их: user_…
30 мар '16 в 13:53
8
ответов
Неизменяемые функциональные объекты в сильно изменяемой области
В настоящее время я изучаю функциональное программирование в свое свободное время в Scala, и у меня возник вопрос в новичке. Я вижу элегантность наличия неизменных объектов при выполнении чего-то вроде вычисления вейвлет-преобразования Хаара - то ес…
03 окт '08 в 11:16
1
ответ
Изменяемый DOST-файл Django не отображается в cleaned_data
Я искал это в течение двух дней, но я не мог найти какое-либо реальное решение. форма: class SMSSettingsForm(forms.ModelForm): smsQuota = forms.IntegerField(label=_("Account Quota"), max_value=432000, min_value=1, required=True, help_text=_('(mins)'…
16 мар '13 в 07:57
1
ответ
Как получить измененное дерево из неизменного дерева, максимизируя повторное использование узлов
У меня есть данные древовидной структуры, как это: [{ id: 54, name:123, children: [{ id: 54, name:123, children: [{ id: 154, name:1234, children []... }] }] }, { ... }] Я использую Angular 2. Насколько я знаю, обнаружение изменений активируется всяк…
23 дек '16 в 09:22
2
ответа
Неизменяемая переменная и неизменный объект
В чем разница между неизменным объектом и неизменной переменной? они оба неизменны? Неизменяемые переменные - это переменные, которые вообще не могут изменяться. но для простых типов есть другое имя или термин для неизменяемой переменной? Можем ли м…
28 окт '15 в 17:27
2
ответа
Создание неизменных Hashsets в Scala условно
У меня есть небольшая функция, которая делает это val s = MutableHashSet[DateTime]() if (a != null) s.add(a) if (b != null) s.add(b) if (c != null) s.add(c) if (d != null) s.add(d) s Я знаю, что использование null - это плохо (и я могу использовать …
24 июн '15 в 09:26
4
ответа
HashMap содержит несколько разных ключей, имеющих одинаковое значение?
То, что я сделал, было просто: я хотел бы создать HashMap<Pair, ArrayList<Integer>> с Pair в качестве ключа и ArrayList<Integer> в качестве значения. Pair это самоопределяемый класс, содержащий элементы l (слева) и r (право). Снача…
01 мар '16 в 11:03
1
ответ
Не может заимствовать `self.x` как неизменяемый, потому что`*self` также заимствован как изменяемый
Во-первых, пусть код говорит: #[derive(Debug)] struct Bar; #[derive(Debug)] struct Qux { baz: bool } #[derive(Debug)] struct Foo { bars: Vec<Bar>, qux: Qux, } impl Foo { fn get_qux(&mut self) -> &mut Qux { &mut self.qux } fn run…
27 июн '15 в 21:45
2
ответа
Как извлечь выгоду из неизменности при обмене данными между потоками?
Я слышал, что использование неизменяемых типов данных может сделать параллельное программирование более безопасным. (См., Например, этот вопрос.) Я пишу код на C++ и пытаюсь воспользоваться этими преимуществами. Но я изо всех сил пытаюсь понять конц…
09 фев '17 в 18:33
1
ответ
Автоматическое замораживание объектов после инициализации
Я устал от добавления freeze в конце метода initialize из моих классов все время, как это: class Foo def initialize # some stuff freeze end end Я хотел бы сделать это по умолчанию для любого объекта. Я думал о переопределении BasicObject#initialize …
18 окт '14 в 16:16
3
ответа
Можем ли мы использовать `const` вместо`let` везде?
С flowtype мы предпочитаем const против let У меня есть функция, которая должна работать максимально эффективно, и она хорошо работает для меня, она сравнивает два массива, поэтому это хороший пример для моего вопроса: /** * @function compare * @des…
18 окт '16 в 12:40
2
ответа
Передача пандам DataFrame по ссылке
Мой вопрос касается неизменности DataFrame панд, когда он передается по ссылке. Рассмотрим следующий код: import pandas as pd def foo(df1, df2): df1['B'] = 1 df1 = df1.join(df2['C'], how='inner') return() def main(argv = None): # Create DataFrames. …
30 сен '16 в 04:13
0
ответов
Создайте объект, в котором каждое свойство и подпроцесс доступны для записи только один раз
Есть ли способ создать объект с помощью Javascript, где каждое свойство объекта доступно для записи только один раз и не может быть изменено после первой записи? Все, что я могу, это прокси-объект, который имеет хуки при назначении, ~ что-то вроде э…
22 июл '17 в 05:44
4
ответа
В чем разница между лицами без гражданства и неизменными?
Я часто слышу термины "Без гражданства" и "Неизменный". Например, HTTP - это протокол без сохранения состояния, а объект String - это неизменяемый объект. Но мне трудно понять разницу между ними. Когда я создаю объект без состояния, он не хранит вну…
19 окт '12 в 19:10
1
ответ
Возможно ли для чистых функций в Haskell мутировать локальные копии переменных?
Возможно ли, чтобы чистые функции в Haskell мутировали локальные копии переменных, как это может сделать Clojure, как упоминалось в " Функциональном программировании - это афера"! Дэвид Нолен? Если нет, то каковы причины этого, и если да, то есть ли…
13 окт '13 в 12:55