typestar

Switch de tipos en Go

Un switch sobre el tipo dinámico dentro de un valor de interfaz.

func describe(value any) string {
    switch typed := value.(type) {
    case nil:
        return "nothing"
    case int:
        return fmt.Sprintf("int %d", typed*2)
    case string:
        return "string " + strings.ToUpper(typed)
    case []int:
        return fmt.Sprintf("%d ints", len(typed))
    case error:
        return "error " + typed.Error()
    default:
        return fmt.Sprintf("something else: %T", typed)
    }
}

Cómo funciona

  1. switch v := x.(type) liga v con el tipo de cada caso.
  2. Un caso nil atrapa una interfaz que no contiene nada.
  3. La rama default es lo que lo mantiene honesto.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
353
Tokens
89
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 51 segundos.

Escribe este fragmento

Paso 1 de 2 en Tipos dinámicos; paso 8 de 19 en Interfaces y genéricos.

← Anterior Siguiente →