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