2012-12-13 9 views
16

Qualcuno potrebbe dirmi se andare supporta il casting automatico di tipi numerici. In questo momento devo convertire manualmente i risultati di tutti i miei calcoli in int o int64 e tenere traccia di quale tipo numerico sto usando.Casting tra i tipi di numeri in golang

+1

Si potrebbe desiderare di guardare [questa domanda ed è risposte] (http://stackoverflow.com/questions/13367979/idiomatic-type-conversion-in-go/13368417). – nemo

risposta

13

Go non converte automaticamente i tipi numerici automaticamente.

Dalla descrizione lingua:

conversioni sono necessari quando diversi tipi numerici sono mescolati in un'espressione o cessione. Ad esempio, int32 e int non sono dello stesso tipo, anche se possono avere le stesse dimensioni su una particolare architettura .

4

Go non supporta le conversioni di tipo implicito in tipo numerico.

Vedere spec. Penso che questo sia per ragioni di sicurezza e prevedibilità. Un'altra cosa che ho trovato è stata un po 'strana/interessante è che non è nemmeno possibile convertire da int a int32 implicitamente, il che è strano perché entrambi hanno le stesse dimensioni.

type conversion error

+4

'int' non è certamente specificato come' int32'. Varia a seconda dell'implementazione e della piattaforma. – Dustin

+0

Quindi come si fa esplicitamente? –

+19

Dicendo y = int32 (x) – gprasant

0

È necessario convertire manualmente tra i tipi, per esempio