typestar

Genéricos en Go

Parámetros de tipo e interfaces de restricción.

type Number interface {
    ~int | ~int64 | ~float64
}

func Sum[T Number](items []T) T {
    var total T
    for _, item := range items {
        total += item
    }
    return total
}

func Map[T, U any](items []T, f func(T) U) []U {
    out := make([]U, 0, len(items))
    for _, item := range items {
        out = append(out, f(item))
    }
    return out
}

Cómo funciona

  1. Una interfaz de restricción hace la unión de los tipos permitidos.
  2. ~int incluye los tipos cuyo tipo subyacente es int.
  3. Map[T, U any] transforma entre tipos de elemento.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
310
Tokens
108
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 59 segundos.

Escribe este fragmento

Paso 1 de 4 en Genéricos; paso 13 de 19 en Interfaces y genéricos.

← Anterior Siguiente →