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`?
另外让我困惑的是,在一些示例中我看到:=在函数内部使用,但在包级别却不行。这是语言的限制吗?
感谢您提供详细的解释和示例,说明何时使用哪个运算符。