Avatar ·

Go中运算符:=和=的区别是什么?请举例说明

你好!我刚开始学习Go,实在搞不清:=和=的区别。看起来两个运算符都在赋值,但编译器在我混淆它们时会报错。 以下是我无法正常运行的代码示例: ```go package main import "fmt" func main() { var name string name = "Alice" fmt.Println(name) // 但这行无法编译: var age int age := 25 // 错误::=左侧没有新变量 fmt.Println(age) } ``` 我读过文档,但写得太复杂了。请用简单的话解释:什么时候用:=,什么时候用=?为什么有时我可以写`x := 10`,而有时必须写`var x int = 10`? 另外让我困惑的是,在一些示例中我看到:=在函数内部使用,但在包级别却不行。这是语言的限制吗? 感谢您提供详细的解释和示例,说明何时使用哪个运算符。