Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Conversione di Tipo di Base | Tipi di Dati
Introduzione a Golang

bookConversione 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

index.go

copy
1
var 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

index.go

copy
12345678
package 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

index.go

copy
123456789
package 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

index.go

copy
12
var 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

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Quale delle seguenti è la sintassi corretta per il type casting in Go?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 1.96

bookConversione 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

index.go

copy
1
var 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

index.go

copy
12345678
package 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

index.go

copy
123456789
package 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

index.go

copy
12
var 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

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Quale delle seguenti è la sintassi corretta per il type casting in Go?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6
some-alt