php中文网

Go 语言中变量作用域是如何工作的?

php中文网

go 语言变量作用域浅析

go 语言中变量的作用域与其他语言如 javascript 中的块级作用域类似。在函数或循环体等语法块中声明的变量,对其外部不可见。

以题中代码为例:

func fun3() {
    i, j := 0, 0
    if true {
        // 这里是第一个语法块
        j, k := 1, 1
    }

    fmt.Printf("i = %d, j = %d
", i, j) // 输出 i = 0, j = 0
}

在这个例子中,内部语法块声明了一个新的变量 j,它覆盖了外部语法块声明的变量 j。因此,外部语法块中对 j 的修改不会影响内部语法块中的 j。这就是最后输出 j 为 0 的原因。

这种基于语法块的作用域限制,可以防止变量名称冲突,从而避免潜在的错误。

以上就是Go 语言中变量作用域是如何工作的?的详细内容,更多请关注php中文网其它相关文章!