typestar

Operar un mapa en Go

La lectura comma-ok, delete y la aleatoriedad deliberada de la iteración.

func mapOps() (int, bool, []string) {
    steps := map[string]int{"basics": 39, "traits": 19, "errors": 15}

    missing, ok := steps["nope"]
    delete(steps, "errors")
    steps["cli"] = 12

    keys := make([]string, 0, len(steps))
    for key := range steps {
        keys = append(keys, key)
    }
    sort.Strings(keys)

    return missing + len(steps), ok, keys
}

Cómo funciona

  1. Una clave ausente devuelve el valor cero, así que pregunta con dos resultados.
  2. delete no hace nada sobre una clave que no está.
  3. El orden de iteración es aleatorio a propósito; ordena las claves.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
326
Tokens
102
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 68 segundos.

Escribe este fragmento

Paso 5 de 9 en Arreglos, slices y mapas; paso 20 de 30 en Fundamentos del lenguaje.

← Anterior Siguiente →