Avatar ·

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