Вопросы с тегом «immutability»

Неизменяемость - это невозможность изменять данные после их создания. Вместо этого изменения производятся путем копирования данных. Свойство неизменяемых данных состоит в том, что они * ссылочно прозрачны *.

548
Удалить определенные символы из строки в Python

Я пытаюсь удалить определенные символы из строки, используя Python. Это код, который я использую прямо сейчас. К сожалению, похоже, что ничего не делает со строкой. for char in line: if char in " ?.!/;:": line.replace(char,'') Как мне сделать это...

540
Почему восклицательные знаки используются в методах Ruby?

В Ruby некоторые методы имеют вопросительный знак ( ?), который задает вопрос, подобный тому, include?который задается , если включается рассматриваемый объект, а затем возвращает true / false. Но почему некоторые методы имеют восклицательные знаки ( !), а другие нет? Что это...

485
Почему изменчивые структуры «злые»?

После обсуждений здесь, посвященных SO, я уже несколько раз читал замечание о том, что изменяемые структуры являются «злыми» (как в ответе на этот вопрос ). Какова реальная проблема с изменчивостью и структурами в C #?...

400
Что подразумевается под неизменным?

Это может быть самый тупой вопрос, который когда-либо задавался, но я думаю, что это довольно запутанно для новичка на Java. Может кто-нибудь уточнить, что подразумевается под неизменным ? Почему Stringнеизменный? Каковы преимущества / недостатки неизменяемых объектов? Почему изменяемый объект,...

349
Const в JavaScript: когда его использовать и нужно ли это?

Я недавно сталкивался с constключевым словом в JavaScript. Из того, что я могу сказать, он используется для создания неизменяемых переменных , и я проверил, чтобы убедиться, что он не может быть переопределен (в Node.js): const x = 'const'; const x = 'not-const'; // Will give an error: 'constant...

229
Какое имя лучше всего использовать для неизменяемого метода add в неизменяемой коллекции?

Извините за вафельный заголовок - если бы я мог придумать краткое название, мне не пришлось бы задавать вопрос. Предположим, у меня есть неизменный тип списка. У него есть операция, Foo(x)которая возвращает новый неизменный список с указанным аргументом в качестве дополнительного элемента в конце....

219
Неизменность строк в Java

Рассмотрим следующий пример. String str = new String(); str = "Hello"; System.out.println(str); //Prints Hello str = "Help!"; System.out.println(str); //Prints Help! Теперь в Java объекты String неизменны. Тогда как же объекту strможет быть присвоено значение «Помощь!». Разве это не противоречит...

211
В чем разница между мелким копированием, глубокой копией и обычной операцией назначения?

import copy a = "deepak" b = 1, 2, 3, 4 c = [1, 2, 3, 4] d = {1: 10, 2: 20, 3: 30} a1 = copy.copy(a) b1 = copy.copy(b) c1 = copy.copy(c) d1 = copy.copy(d) print("immutable - id(a)==id(a1)", id(a) == id(a1)) print("immutable - id(b)==id(b1)", id(b) == id(b1)) print("mutable - id(c)==id(c1)", id(c)...

206
Почему неизменность так важна (или необходима) в JavaScript?

В настоящее время я работаю над платформами React JS и React Native . На полпути я наткнулся на Immutable или библиотеку Immutable-JS , когда читал о реализации Facebook в Flux и Redux. Вопрос в том, почему неизменность так важна? Что не так в мутирующих объектах? Разве это не упрощает ситуацию? В...

186
Неизменяемые и изменчивые типы

Я запутался в том, что такое неизменный тип. Я знаю, что floatобъект считается неизменным, на примере такого типа из моей книги: class RoundFloat(float): def __new__(cls, val): return float.__new__(cls, round(val, 2)) Считается ли это неизменным из-за структуры / иерархии классов? Значение...

181
Как сделать неизменный объект в Python?

Хотя мне это никогда не было нужно, меня просто поразило, что создание неизменяемого объекта в Python может быть немного сложнее. Вы не можете просто переопределить __setattr__, потому что тогда вы не можете даже установить атрибуты в __init__. Подклассы кортежа - это трюк, который работает: class...

178
Почему кортежи могут содержать изменяемые элементы?

Если кортеж является неизменным, то почему он может содержать изменяемые элементы? Кажется противоречием то, что когда изменяемый элемент, такой как список, действительно изменяется, кортеж, к которому он принадлежит, остается...

173
Изменчивые против неизменных объектов

Я пытаюсь разобраться с изменчивыми и неизменными объектами. Использование изменяемых объектов вызывает много проблем (например, возвращает массив строк из метода), но у меня возникают проблемы с пониманием того, как это негативно влияет. Каковы лучшие практики использования изменяемых объектов? Вы...

170
Неизменный против неизменяемой коллекции

Из обзора структуры коллекций : Коллекции , которые не поддерживают операции модификации (такие , как add, removeи clear) называются нередактируемым . Коллекции, которые не являются неизменяемыми, являются изменяемыми . Коллекции, которые дополнительно гарантируют, что никакие изменения в...

160
Как избежать проблемы «слишком много параметров» в дизайне API?

У меня есть эта функция API: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) Мне это не нравится Потому что порядок параметров становится излишне значимым. Становится сложнее добавлять новые поля. Труднее увидеть, что происходит вокруг....

158
Каким будет «замороженный дикт»?

Замороженный набор - это фрозенет. Замороженный список может быть кортежем. Каким будет замороженный дикт? Неизменный, бескомпромиссный диктат. Я думаю, что это может быть что-то вроде collections.namedtuple, но это больше похоже на диктат замороженных ключей (полузамороженный диктат). Не так ли?...

158
Неизменяемый массив в Java

Есть ли неизменная альтернатива примитивным массивам в Java? Создание примитивного массива на finalсамом деле не мешает делать что-то вроде final int[] array = new int[] {0, 1, 2, 3}; array[0] = 42; Я хочу, чтобы элементы массива были...

158
Неизменно удалить свойство объекта

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