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

155
Ошибка: «Невозможно изменить возвращаемое значение» c #

Я использую автоматически реализованные свойства. Я думаю, что самый быстрый способ исправить следующее - объявить собственную переменную поддержки? public Point Origin { get; set; } Origin.X = 10; // fails with CS1612 Сообщение об ошибке: невозможно изменить возвращаемое значение выражения,...

136
Перечисления в Javascript с ES6

Я перестраиваю старый Java-проект в Javascript и понял, что в JS нет хорошего способа сделать перечисления. Лучшее, что я могу придумать, это: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); constХранит Colorsот быть переназначены, и...

132
Преимущества программирования без сохранения состояния?

Недавно я изучал функциональное программирование (в частности, Haskell, но я также прошел через учебные пособия по Lisp и Erlang). Хотя я нашел эти концепции очень поучительными, я все еще не вижу практической стороны концепции «отсутствия побочных эффектов». Каковы практические преимущества этого?...

123
Swift сделать параметр метода изменяемым?

Как мне справиться с этой ошибкой без создания дополнительной переменной? func reduceToZero(x:Int) -> Int { while (x != 0) { x = x-1 // ERROR: cannot assign to 'let' value 'x' } return x } Я не хочу создавать дополнительную переменную только для хранения значения x. Можно ли вообще делать то,...

122
Правильный способ вставить в массив состояний

Кажется, у меня проблемы с отправкой данных в массив состояний. Я пытаюсь добиться этого следующим образом: this.setState({ myArray: this.state.myArray.push('new value') }) Но я считаю, что это неправильный способ и вызывает проблемы с...

115
Неизменяемые коллекции Java

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

113
Как создать неизменяемый класс?

Я работаю над созданием неизменяемого класса. Я пометил все свойства как доступные только для чтения. У меня есть список предметов в классе. Хотя, если свойство доступно только для чтения, список можно изменить. Открытие IEnumerable списка делает его неизменяемым. Я хотел знать, каковы основные...

111
Разве строки Python не неизменяемы? Тогда почему работает a + «» + b?

Насколько я понимаю, строки Python неизменяемы. Я пробовал следующий код: a = "Dog" b = "eats" c = "treats" print a, b, c # Dog eats treats print a + " " + b + " " + c # Dog eats treats print a # Dog a = a + " " + b + " " + c print a # Dog eats treats # !!! Разве Python не должен был препятствовать...

107
Как обойти изменчивость в moment.js?

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

104
Что значит неизменный?

Если строка неизменяема, значит ли это, что .... (предположим, JavaScript) var str = 'foo'; alert(str.substr(1)); // oo alert(str); // foo Означает ли это, что при вызове методов для строки он вернет измененную строку, но не изменит исходную строку? Если строка была изменяемой, значит ли это, что...

102
Удалить значение из объекта без изменения

Какой хороший и короткий способ удалить значение из объекта по определенному ключу без изменения исходного объекта? Я бы хотел сделать что-то вроде: let o = {firstname: 'Jane', lastname: 'Doe'}; let o2 = doSomething(o, 'lastname'); console.log(o.lastname); // 'Doe' console.log(o2.lastname); //...

102
Неизменяемое целое число

Я знаю, что это, вероятно, очень глупо, но во многих местах утверждается, что класс Integer в Java неизменен, но следующий код: Integer a=3; Integer b=3; a+=b; System.out.println(a); Выполняется без каких-либо проблем, давая (ожидаемый) результат 6. Таким образом, фактически изменилось значение a....

99
val-mutable против var-immutable в Scala

Есть ли в Scala какие-либо рекомендации относительно того, когда использовать val с изменяемой коллекцией по сравнению с использованием var с неизменяемой коллекцией? Или вам действительно стоит стремиться к val с неизменной коллекцией? Тот факт, что существуют оба типа коллекции, дает мне большой...

96
Создание больших неизменяемых объектов без использования конструкторов с длинными списками параметров

У меня есть несколько больших (более 3 полей) объектов, которые могут и должны быть неизменными. Каждый раз, когда я сталкиваюсь с этим случаем, я склонен создавать мерзкие конструкторы с длинными списками параметров. Это кажется неправильным, его трудно использовать, а также страдает...

93
Есть ли в Python неизменяемый список?

Есть ли в Python неизменяемые списки? Предположим, я хочу иметь функциональность упорядоченного набора элементов, но я хочу гарантировать, что она не изменится. Как это можно реализовать? Списки упорядочены, но могут быть изменены....

88
Неизменяемые / изменяемые коллекции в Swift

Я имел в виду руководство Apple по программированию Swift для понимания создания изменяемых / неизменяемых объектов (массив, словарь, наборы, данные) на языке Swift. Но я не мог понять, как создавать неизменяемые коллекции в Swift. Я хотел бы увидеть в Swift эквиваленты для следующего в...

86
Заменить несколько строковых элементов в C #

Есть ли лучший способ сделать это ... MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ") .Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower(); Я расширил класс String, чтобы сократить его до одной задачи, но есть ли более быстрый способ? public static class...

86
Разве Redux не является просто прославленным глобальным государством?

Так что я начал изучать React неделю назад и неизбежно столкнулся с проблемой состояния и того, как компоненты должны взаимодействовать с остальной частью приложения. Я поискал, и мне кажется, что Redux - это аромат месяца. Я прочитал всю документацию и считаю, что это действительно революционная...