Avatar ·

Qual é a diferença entre os operadores := e = em Go? Explique com exemplos

Olá! Acabei de começar a estudar Go e não consigo entender a diferença entre := e =. Ambos os operadores parecem atribuir algo, mas o compilador reclama se eu os confundo. Aqui está um exemplo de código que não funciona para mim: ```go package main import "fmt" func main() { var name string name = "Alice" fmt.Println(name) // E isso por algum motivo não compila: var age int age := 25 // erro: no new variables on left side of := fmt.Println(age) } ``` Li a documentação, mas está complicada. Explique em palavras simples: quando usar := e quando usar =? E por que em um caso posso escrever `x := 10` e em outro `var x int = 10`? Também me confunde que em alguns exemplos vejo := sendo usado dentro de funções, mas não no nível do package. Isso é uma limitação da linguagem? Ficarei grato por uma explicação detalhada com exemplos de quando aplicar cada operador.