Conversione di Tipo di Base
Typecasting è il processo di conversione dei dati da un tipo di dato a un altro. Tuttavia, è importante notare che non è sempre possibile convertire i dati da un tipo a un altro. Ad esempio, è possibile convertire un float in un int e viceversa. Tuttavia, non avrebbe senso convertire una string in un int, e quindi non è possibile.
Esistono due tipi di conversioni di tipo o typecasting. Uno di questi è il Type Casting Implicito. Il type casting implicito si verifica quando Go converte automaticamente un tipo in un altro quando è sicuro e non ambiguo. Ad esempio, quando si assegna un valore intero a una variabile float, viene trattato automaticamente come float, poiché nessun dato può andare perso durante la conversione (10 è lo stesso di 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
L'altro tipo di conversione di tipo è il Type Casting Esplicito, che si verifica quando il programmatore converte esplicitamente dati o espressioni da un tipo a un altro. La sintassi per il type casting esplicito è desiredType(expression), ad esempio:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
Nel programma sopra, convertiamo un valore float32 in un int utilizzando il type casting esplicito. Di conseguenza, la parte decimale del numero originale viene scartata e solo il valore intero 7 viene memorizzato in number2. È importante notare che in questo caso si perde una parte dei dati, nello specifico la parte decimale del numero (0.9). Tuttavia, questa scelta è stata fatta esplicitamente.
Allo stesso modo, possiamo convertire un rune in una string. Nel capitolo Rune abbiamo esaminato un programma che stampava il valore di una Rune, che era un numero. Tuttavia, possiamo visualizzare l'equivalente carattere di una Rune convertendola in una stringa:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Tuttavia, non è possibile convertire una string in un rune:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
È importante notare che non possiamo convertire una stringa contenente un singolo carattere in una rune:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 1.96
Conversione di Tipo di Base
Scorri per mostrare il menu
Typecasting è il processo di conversione dei dati da un tipo di dato a un altro. Tuttavia, è importante notare che non è sempre possibile convertire i dati da un tipo a un altro. Ad esempio, è possibile convertire un float in un int e viceversa. Tuttavia, non avrebbe senso convertire una string in un int, e quindi non è possibile.
Esistono due tipi di conversioni di tipo o typecasting. Uno di questi è il Type Casting Implicito. Il type casting implicito si verifica quando Go converte automaticamente un tipo in un altro quando è sicuro e non ambiguo. Ad esempio, quando si assegna un valore intero a una variabile float, viene trattato automaticamente come float, poiché nessun dato può andare perso durante la conversione (10 è lo stesso di 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
L'altro tipo di conversione di tipo è il Type Casting Esplicito, che si verifica quando il programmatore converte esplicitamente dati o espressioni da un tipo a un altro. La sintassi per il type casting esplicito è desiredType(expression), ad esempio:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
Nel programma sopra, convertiamo un valore float32 in un int utilizzando il type casting esplicito. Di conseguenza, la parte decimale del numero originale viene scartata e solo il valore intero 7 viene memorizzato in number2. È importante notare che in questo caso si perde una parte dei dati, nello specifico la parte decimale del numero (0.9). Tuttavia, questa scelta è stata fatta esplicitamente.
Allo stesso modo, possiamo convertire un rune in una string. Nel capitolo Rune abbiamo esaminato un programma che stampava il valore di una Rune, che era un numero. Tuttavia, possiamo visualizzare l'equivalente carattere di una Rune convertendola in una stringa:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Tuttavia, non è possibile convertire una string in un rune:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
È importante notare che non possiamo convertire una stringa contenente un singolo carattere in una rune:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Grazie per i tuoi commenti!