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
- Una clave ausente devuelve el valor cero, así que pregunta con dos resultados.
deleteno hace nada sobre una clave que no está.- El orden de iteración es aleatorio a propósito; ordena las claves.
Palabras clave y builtins usados aquí
appendbooldeleteforfuncintlenmakemaprangereturnstring
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.
Paso 5 de 9 en Arreglos, slices y mapas; paso 20 de 30 en Fundamentos del lenguaje.