slices recorrer print golang array go allocation slice

print - recorrer array golang



¿Declarar rebanada o hacer rebanada? (2)

Además de la answer fabriziom , puede ver más ejemplos en " Go Slices: use and internals ", donde se menciona el uso de []int :

Dado que el valor cero de un segmento ( nil ) actúa como un segmento de longitud cero , puede declarar una variable de sector y anexarla a un bucle:

// Filter returns a new slice holding only // the elements of s that satisfy f() func Filter(s []int, fn func(int) bool) []int { var p []int // == nil for _, v := range s { if fn(v) { p = append(p, v) } } return p }

Significa que, para agregar a un sector, no es necesario asignar memoria primero: el nil slice p int[] es suficiente como un segmento para agregar.

En Golang, ¿cuál es la diferencia entre var s []int y s := make([]int, 0) ?

Encuentro que ambos funcionan, pero ¿cuál es mejor?


Declaración simple

var s []int

no asigna memoria s puntos a nil , mientras

s := make([]int, 0)

asigna memoria s puntos a la memoria en un sector con 0 elementos.

Por lo general, el primero es más idiomático si no conoce el tamaño exacto de su caso de uso.