문제

.NET Framework 4에는 분명히 BigInteger 클래스가 포함됩니다. 그러나, 나는 그것이 불변할지 여부를 알 수없는 것 같습니다. 나는 또한 그것이 좋은지 여부를 결정할 수없는 것 같습니다.

불변성은 특히 큰 정보와 같은 "가치와 같은"것에 대해 많은 이점을 가지고 있습니다. 반면에 PowerMod와 같은 고비용 작업을 가능한 한 빠른 속도로 만들려면 기본 작업이 효율적이어야합니다. 안락은 불변의 추가보다 빠를 것입니다. 나는 현재 도서관 클래스 (Think String)의 더 나은 선택으로 불변성에 기대고 있습니다.

그것이 불변이 될지 아는 사람이 있습니까? 당신은 그것이 불변이어야한다고 생각합니까?

도움이 되었습니까?

해결책

나는 그것이 불변이 될 것이라고 믿는다 (나는 기본적으로 DLR 구현을 불변으로 가져오고있다).

예, 불변이어야합니다. Int32 및 Double과 같은 다른 숫자 값 유형과 같이 행동해야합니다. 돌연변이 가능한 숫자 클래스를 갖는 것은 매우 혼란 스러울 것입니다.

다른 팁

나는 그것이 불변이 될 것이라고 생각하며, 이것이 '가치'유형에 대한 유일한 합리적인 디자인 선택이라고 생각합니다. (DLR과 마찬가지로 F# bigint도 불변입니다. 우리가 프레임 워크에서 언어를 공유 할 수 있도록 마침내이 유형을 얻는 것이 좋습니다.)

불변이 될 것입니다. 그렇습니다. 그렇지 않으면 다른 숫자 유형처럼 행동하지 않으며 정수 기반 코드에서 BigInteger 기반 코드로 이동하면 매우 이상한 동작이 표시됩니다.

아마도 향후 릴리스에는 추가로 변한 유형이 있어야합니다 (StringBuilder는 String 용입니다).

msdn.microsoft.com/en-us/library/system.numerics.biginteger(vs.100).aspx의 (예비 그러나 공식) 문서를 살펴보십시오.

Biginteger 유형은 이론의 값이 상한 또는 하한이없는 임의로 큰 정수를 나타내는 불변의 유형입니다. [...] biginteger 유형은 불변이기 때문에 [...] 상한 또는 하한이 없기 때문에 Biginteger 값이 너무 커지는 모든 작업에 대해 외부에서 외부 예상을 던질 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top