현재 Go Lang 자습서 인 "숫자 상수"를 정확하게 수행하고 있습니다. 나는 다음과 같은 얻을,큰 숫자 인쇄로 이동
fmt.Printf("%T", Big)
fmt.Println(Big)
을하지만 : 예제 코드는 다음과 같은 문장으로 시작 :
const (
// Create a huge number by shifting a 1 bit left 100 places.
// In other words, the binary number that is 1 followed by 100 zeroes.
Big = 1 << 100
// Shift it right again 99 places, so we end up with 1<<1, or 2.
Small = Big >> 99
)
이 상수 Big
분명히 큰이며, 나는 다음과 같이 IT와 유형을 인쇄하려고 두 라인 오류 :
# command-line-arguments ./compile26.go:19: constant 1267650600228229401496703205376 overflows int
I는이 같은 오류로 넘쳐 uint64
로, 다른 유형에 큰 캐스팅 시도하거나 그냥 변환 것 문자열에 t, 그러나 나는 다음과 같은 오류 얻을 Big.String()
시도 :
Big.String undefined (type int has no field or method String)
그 형태가 int
이다, 그러나 나는 그것을 인쇄하거나 아무것도 캐스팅하고 모든 메소드를 오버 플로우 수 없다는 나타납니다. 이 번호/개체로 무엇을 할 수 있습니까? 어떻게 인쇄합니까?
헌장 : 가장 쉬운 방법은 기본 10 문자열을 사용하는 아마. const의 개념은 컴파일 중에 만 존재하며, const는 임의의 (거의) 정밀도와 크기이며 산술 연산이 가능합니다. const를 사용할 때 "적절한"유형으로 변환됩니다. 이 변환은 프로그램이 잘못된 경우처럼 실패 할 수 있습니다. '빅 '을 인쇄하는 (직접적이고 간단한) 방법은 없습니다. – Volker
[상수에 산술 연산을 수행하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/38982278/how-does-go-perform-arithmetic-on-constants) – icza