变量 作用域 表示变量的 可访问性
根据作用域的大小一般分为全局变量与局部变量
声明在函数内部的变量称为局部变量, 声明在函数外部的变是全局变量
还有声明在代码块中的变量也称为局部变量
大括号中的代码称为语句块, 直接大括号或者for循环或者if语句块等
func main() {
}
a := 100 // 全局变量
A := 200 // 全局变量
func test() {
j := 10 // 局部变量(相对于i和k又称为全局变量)
for i:=0; i<10; i++ { // 局部变量
k := 2*i // 局部变量
}
}
全局变量和局部变量只是相对的, 都很好理解
全局变量在同一个包中, 不能重名
并且一个文件中定义了某全局变量(不需要大写开头), 另一个文件中引用时直接使用(不需要使用包名.的方式)
全局变量在不同包中可以同名
虽然同名, 但很明显表示的是不同的变量
引用时, 使用包名.全局变量(全局变量需要大写开头)
就近原则
局部变量和全局变量名称可以相同
优先使用局部变量, 局部变量永远更"近"