«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
"동결 된 dict"은 무엇입니까?
고정 세트는 고정 세트입니다. 고정 된 목록은 튜플 일 수 있습니다. 얼어 붙은 구술은 무엇입니까? 불변의 해시 가능한 dict. 나는 그것이 같은 것일 수 있다고 생각 collections.namedtuple하지만, 그것은 고정 키 dict (반 냉동 dict)와 비슷합니다. 그렇지 않습니까? A "frozendict는"이 있어야한다, 냉동 사전되어야한다 keys, values, get, 등 및 지원 in, for등 …

8
오류 :“반환 값을 수정할 수 없습니다”c #
자동 구현 속성을 사용하고 있습니다. 다음을 수정하는 가장 빠른 방법은 내 백업 변수를 선언하는 것입니다. public Point Origin { get; set; } Origin.X = 10; // fails with CS1612 오류 메시지 : 'expression'의 반환 값은 변수가 아니므로 수정할 수 없습니다. 중간 표현식의 결과 인 값 유형을 수정하려고했습니다. 값이 유지되지 않으므로 …

15
불변으로 객체의 속성 제거
Redux를 사용하고 있습니다. 내 감속기에서 다음과 같은 객체에서 속성을 제거하려고합니다. const state = { a: '1', b: '2', c: { x: '42', y: '43' }, } 그리고 원래 상태를 변경하지 않고 이와 같은 것을 원합니다. const newState = { a: '1', b: '2', c: { x: '42', }, } 나는 …

13
ES6을 사용하는 Javascript의 열거 형
Javascript에서 오래된 Java 프로젝트를 다시 작성 중이며 JS에서 열거 형을 수행하는 좋은 방법이 없다는 것을 깨달았습니다. 내가 생각해 낼 수있는 최선은 다음과 같습니다. const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); 는 const계속 Colors재 할당되는 것을, 그리고이 키와 값을 돌연변이 방지 동결. 나는 Symbols를 사용하여 Colors.RED같지 …

8
상태 비 저장 프로그래밍의 장점?
최근에 함수형 프로그래밍 (특히 Haskell)에 대해 배웠지 만 Lisp 및 Erlang에 대한 자습서도 살펴 보았습니다. 개념이 매우 밝아진 것을 발견했지만 여전히 "부작용 없음"개념의 실제적인 측면을 보지 못했습니다. 그것의 실용적인 장점은 무엇입니까? 나는 기능적인 사고 방식을 생각하려고 노력하고 있지만, 쉬운 방법으로 상태를 저장할 수있는 능력없이 지나치게 복잡해 보이는 상황이 있습니다 (하스켈의 …


10
상태 배열로 푸시하는 올바른 방법
데이터를 상태 배열로 푸시하는 데 문제가있는 것 같습니다. 나는 이런 식으로 그것을 달성하려고합니다. this.setState({ myArray: this.state.myArray.push('new value') }) 그러나 이것이 잘못된 방법이라고 생각하며 변경 가능성에 문제가 있습니까?


6
자바 불변 컬렉션
에서 자바 1.6 컬렉션 프레임 워크 문서 : 어떠한 수정 작업 (예를 지원하지 않는 컬렉션 add, remove및 clear)라고도 불가능한 . [...] Collection 객체의 변경 사항이 표시되지 않음을 추가로 보장하는 컬렉션을 불변 이라고합니다 . 두 번째 기준은 저를 약간 혼란스럽게합니다. 첫 번째 컬렉션을 수정할 수없고 원래 컬렉션 참조가 삭제되었다고 가정 할 …

6
불변 클래스는 어떻게 만듭니 까?
불변 클래스를 만드는 중입니다. 모든 속성을 읽기 전용으로 표시했습니다. 수업에 항목 목록이 있습니다. 속성이 읽기 전용 인 경우 목록을 수정할 수 있습니다. 목록의 IEnumerable을 노출하면 변경할 수 없습니다. 클래스를 불변으로 만들기 위해 따라야하는 기본 규칙이 무엇인지 알고 싶었습니다.
113 c#  .net  immutability 



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.