Type Casting o Type Conversion en Golang

Requisito previo: tipos de datos de Golang

La conversión de tipo ocurre cuando asignamos el valor de un tipo de datos a otro. Los lenguajes de tipo estático como C / C++ , Java , brindan soporte para la conversión de tipo implícita, pero Golang es diferente, ya que no admite la conversión de tipo automática o la conversión de tipo implícita, incluso si los tipos de datos son compatibles. La razón de esto es el Strong Type System de Golang que no permite hacer esto. Para la conversión de tipos, debe realizar una conversión explícita. 
Según la especificación de Golang, no existe una palabra o terminología de encasillamiento en Golang. Si intenta buscar Type Casting en las especificaciones o documentación de Golang, no encontrará nada como esto. Solo hay conversión de tipo. En otros lenguajes de programación, el encasillamiento también se denomina conversión de tipo.
¿Cuál es la necesidad de conversión de tipo?  
Bueno, si necesita aprovechar ciertas características de las jerarquías de tipos de datos, entonces tenemos que cambiar las entidades de un tipo de datos a otro. La sintaxis general para convertir un valor val a un tipo T es T(val)
Ejemplo:
 

var geek1 int = 845

// explicit type conversion
var geek2 float64 = float64(geek1)

var geek3 int64 = int64(geek1)

var geek4 uint = uint(geek1)

C

// Go program to find the
// average of numbers
package main
 
import "fmt"
 
func main() {
 
    // taking the required
    // data into variables
    var totalsum int = 846
    var number int = 19
    var avg float32
 
    // explicit type conversion
    avg = float32(totalsum) / float32(number)
 
    // Displaying the result
    fmt.Printf("Average = %f\n", avg)
}

Producción:
 

Average = 44.526318

Nota: como Golang tiene un sistema de tipos fuerte, no permite mezclar (como sumas, restas, multiplicaciones, divisiones, etc.) los tipos numéricos en las expresiones y tampoco se le permite realizar una asignación entre los dos mixtos. tipos
Ejemplo:
 

var geek1 int64 = 875

// it will give compile time error as we
// are performing an assignment between
// mixed types i.e. int64 as int type
var geek2 int = geek1

var geek3 int = 100

// it gives compile time error
// as this is invalid operation
// because types are mix i.e.
// int64 and int
var addition = geek1 + geek3

Publicación traducida automáticamente

Artículo escrito por anita yadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *