ho provato:Come posso stampare un uint64 costante in Go usando fmt?
fmt.Printf ("% d", math.MaxUint64)
ma ho ottenuto il seguente messaggio di errore:
costanti 18446744073709551615 overflow int
Come posso risolvere questo? Grazie!
ho provato:Come posso stampare un uint64 costante in Go usando fmt?
fmt.Printf ("% d", math.MaxUint64)
ma ho ottenuto il seguente messaggio di errore:
costanti 18446744073709551615 overflow int
Come posso risolvere questo? Grazie!
math.MaxUint64
è una costante, non una int64. Prova invece:
fmt.Printf("%d", uint64(num))
Il problema qui è che la costante non è tipizzata. La costante assumerà un tipo in base al contesto in cui viene utilizzato. In questo caso, viene utilizzato come un'interfaccia {}, quindi il compilatore non ha modo di sapere quale tipo di calcestruzzo si desidera utilizzare. Per le costanti integer, il valore predefinito è int
. Dal momento che la costante trabocca di un int, questo è un errore di compilazione. Passando allo uint64(num)
, si informa il compilatore che si desidera che il valore venga considerato come uint64
.
Si noti che questa particolare costante si adatta solo a un uint64 ea volte a un uint. È persino più grande di un int64 standard.
Mi sembra che tu stia cercando di memorizzare un numero troppo grande in una variabile "int". Usa invece 'uint64'. –
Le mie scuse, ma ho commesso un errore quando ho scritto la domanda. L'ho aggiornato per riflettere ciò che intendevo. – abw333