Sobes.tech
Junior — Middle

¿Puedes explicar el mecanismo de funcionamiento de los tipos genéricos en el lenguaje de programación?

sobes.tech AI

Respuesta de la IA

Los tipos genéricos en programación permiten crear funciones, estructuras de datos y tipos que trabajan con diferentes tipos de datos, manteniendo la seguridad de tipos. En el lenguaje Go (Golang), desde la versión 1.18, se ha introducido el soporte para genéricos.

El mecanismo de tipos genéricos permite parametrizar funciones y tipos mediante parámetros de tipo. Esto significa que se puede escribir un código que funcione con diferentes tipos de datos, sin necesidad de duplicar el código para cada tipo.

Ejemplo de una función genérica en Go:

package main
import "fmt"

// Función que devuelve el primer elemento de un slice de cualquier tipo
func First[T any](slice []T) T {
    return slice[0]
}

func main() {
    ints := []int{1, 2, 3}
    strings := []string{"a", "b", "c"}

    fmt.Println(First(ints))    // Imprime 1
    fmt.Println(First(strings)) // Imprime "a"
}

Aquí, T es un parámetro de tipo, que puede ser cualquier tipo (any es una restricción que permite cualquier tipo). Al llamar a la función, el compilador sustituye el tipo específico.

De esta manera, los tipos genéricos aumentan la reutilización del código y garantizan la seguridad de tipos sin perder rendimiento.