私は試した:
fmt.Printf("%d", math.MaxUint64)
しかし、次のエラーメッセージが表示されました:
定数 18446744073709551615 オーバーフロー int
どうすればこれを修正できますか? ありがとう!
math.MaxUint64
int64 ではなく、定数です。代わりに試してください:
fmt.Printf("%d", uint64(num))
ここでの問題は、定数が型指定されていないことです。定数は、それが使用されるコンテキストに応じてタイプを想定します。この場合、interface{} として使用されているため、コンパイラは使用する具象型を知る方法がありません。整数定数の場合、デフォルトはint
です。定数が int をオーバーフローしているため、これはコンパイル時エラーです。を渡すことuint64(num)
で、値を として処理することをコンパイラに通知しますuint64
。
この特定の定数は、uint64 および場合によっては uint にのみ適合することに注意してください。この値は、標準の int64 が保持できるよりもさらに大きくなります。