Diferença entre := e = em Go: declaração curta versus atribuição
Olá a todos! Comecei a estudar Go e fiquei confuso com os operadores := e =. Ambos parecem ser usados para trabalhar com variáveis, mas qual é a diferença?
Aqui está um exemplo que me confundiu:
```go
package main
import "fmt"
func main() {
name := "Anna" // isso funciona
var age int = 25 // isso também funciona
age = 30 // e isso funciona
// name = "Boris" // também tentei isso
}
```
Quando escrevo name := "Anna" — tudo ok. Mas se eu primeiro declaro uma variável com var e depois tento usar := com a mesma variável, o compilador reclama: "no new variables on left side of :=". Por quê?
Além disso, notei que := só funciona dentro de funções. Se escrevo assim:
```go
var version = "1.0" // globalmente — ok
// version := "1.0" // globalmente — erro!
```
Por que isso? E em quais casos devo usar :=, e em quais apenas =? Li vários tutoriais, mas ainda estou confuso. Expliquem, por favor, de forma simples, com exemplos, quando usar cada um.
No answers yet.
Faça login para deixar uma resposta