Avatar ·

¿Cuál es la diferencia entre los operadores := y = en Go? Explica con ejemplos

¡Hola! Acabo de empezar a aprender Go y no puedo entender la diferencia entre := y =. Ambos operadores parecen asignar algo, pero el compilador se queja si los confundo. Aquí hay un ejemplo de código que no me funciona: ```go package main import "fmt" func main() { var name string name = "Alice" fmt.Println(name) // Y esto por alguna razón no se compila: var age int age := 25 // error: no new variables on left side of := fmt.Println(age) } ``` Leí la documentación, pero está escrita de manera complicada. Explícame en palabras simples: ¿cuándo usar := y cuándo =? ¿Y por qué en un caso puedo escribir `x := 10` y en otro `var x int = 10`? También me confunde que en algunos ejemplos veo que usan := dentro de funciones, pero no a nivel de package. ¿Es una limitación del lenguaje? Agradecería una explicación detallada con ejemplos de cuándo aplicar cada operador.