go变量作用域

变量 作用域 表示变量的 可访问性

根据作用域的大小一般分为全局变量与局部变量

声明在函数内部的变量称为局部变量, 声明在函数外部的变是全局变量

还有声明在代码块中的变量也称为局部变量

大括号中的代码称为语句块, 直接大括号或者for循环或者if语句块等

func main() {
    
}

a := 100         // 全局变量
A := 200         // 全局变量

func test() {
    j := 10        // 局部变量(相对于i和k又称为全局变量)

    for i:=0; i<10; i++ {     // 局部变量
        k := 2*i              // 局部变量
    }
}

全局变量和局部变量只是相对的, 都很好理解

全局变量在同一个包中, 不能重名

并且一个文件中定义了某全局变量(不需要大写开头), 另一个文件中引用时直接使用(不需要使用包名.的方式)

全局变量在不同包中可以同名

虽然同名, 但很明显表示的是不同的变量

引用时, 使用包名.全局变量(全局变量需要大写开头)

就近原则

局部变量和全局变量名称可以相同

优先使用局部变量, 局部变量永远更"近"

猜你喜欢

转载自blog.csdn.net/lljxk2008/article/details/86642027