정수 리터럴이 64비트 범위를 벗어남
정수 리터럴이 64비트 범위를 벗어남 (integer_literal_out_of_range)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 integer_literal_out_of_range 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. 간단히 말하면, 정수 리터럴의 값이 64비트 워드로 표현할 수 있는 범위를 벗어났을 때 분석기가 이 진단을 알려 줘요. 왜 문제가 되는지 살펴볼게요.
본문
진단 메시지
The integer literal {0} can't be represented in 64 bits.
정수 리터럴 {0}은(는) 64비트로 표현할 수 없어요.
설명
분석기는 정수 리터럴의 값이 64비트 워드로 표현하기에는 너무 크거나(양수) 너무 작아서(음수) 표현할 수 없을 때 이 진단을 만들어 내요.
예시
다음 코드는 값이 64비트로 표현할 수 없기 때문에 이 진단을 만들어 내요.
var x = 9223372036854775810;
일반적인 해결 방법
현재의 값을 그대로 표현해야 한다면, BigInt 클래스의 인스턴스로 감싸면 돼요.
var x = BigInt.parse('9223372036854775810');
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- 숫자 타입과 표현 범위에 대해 더 알고 싶다면 Numbers 문서를 참고해요.