Valores cero en Go
Toda variable declarada arranca en el valor cero de su tipo: nada de memoria sin inicializar.
func zeroes() string {
var (
count int
ratio float64
name string
ok bool
items []int
table map[string]int
ptr *int
)
items = append(items, 1) // un slice nil acepta append sin problema
return fmt.Sprintf("%d %.1f %q %t %v %v %v",
count, ratio, name, ok, items, table == nil, ptr == nil)
}
Cómo funciona
- Los números arrancan en 0, las cadenas vacías, los punteros y slices en nil.
- Un slice nil acepta append; un mapa nil no.
varsin valor es idiomático cuando el cero es lo que quieres.
Palabras clave y builtins usados aquí
appendboolfloat64funcintmapreturnstringvar
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 295
- Tokens
- 65
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 49 segundos.
Paso 2 de 5 en Variables y tipos; paso 2 de 30 en Fundamentos del lenguaje.