La forma correcta de inicializar un slice vacío en Go: var vs make
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con confusión al inicializar slices vacíos. En la documentación y ejemplos veo dos enfoques principales, pero no entiendo cuál es el correcto y en qué situaciones.
La primera forma es mediante la declaración de variable:
```go
var s []string
```
La segunda es mediante la función make:
```go
s := make([]string, 0)
```
He leído que ambos crean un slice vacío, pero ¿hay alguna diferencia entre ellos? Cuando uso `var s []string`, puedo verificar `s == nil` y obtener `true`. Y al usar `make([]string, 0)` — `false`. ¿Significa esto que una forma es mejor que la otra?
Me preocupa especialmente la situación cuando creo un slice que luego se llenará con datos, por ejemplo, al parsear JSON o leer líneas de un archivo. Quiero evitar asignaciones de memoria innecesarias y problemas con slices nil al serializar. En algunos lenguajes que conozco, un array vacío y nil son cosas diferentes, y esto a menudo generaba bugs.
Por favor, indíquenme qué forma de inicialización