정수 리터럴이 64비트 범위를 벗어남

정수 리터럴이 64비트 범위를 벗어남 (integer_literal_out_of_range)

이 문서는 Dart 분석기(analyzer)가 만들어 내는 integer_literal_out_of_range 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. 간단히 말하면, 정수 리터럴의 값이 64비트 워드로 표현할 수 있는 범위를 벗어났을 때 분석기가 이 진단을 알려 줘요. 왜 문제가 되는지 살펴볼게요.

출처: integer_literal_out_of_range

본문

진단 메시지

The integer literal {0} can't be represented in 64 bits.

정수 리터럴 {0}은(는) 64비트로 표현할 수 없어요.

설명

분석기는 정수 리터럴의 값이 64비트 워드로 표현하기에는 너무 크거나(양수) 너무 작아서(음수) 표현할 수 없을 때 이 진단을 만들어 내요.

예시

다음 코드는 값이 64비트로 표현할 수 없기 때문에 이 진단을 만들어 내요.

var x = 9223372036854775810;

일반적인 해결 방법

현재의 값을 그대로 표현해야 한다면, BigInt 클래스의 인스턴스로 감싸면 돼요.

var x = BigInt.parse('9223372036854775810');

더 알아보기