一、变量的作用域
函数内部声明/定义的变量叫局部变量,作用域仅限于函数内部。
//变量作用域
package main
import (
"fmt"
)
//局部变量作用域
func test() {
var age int = 10
}
func main() {
fmt.Println(test.age)
}
函数外部声明/定义的变量叫全局变量,作用域在整个包都有效,如果其首字母为大写,则作用域在整个程序有效。
//变量作用域
package main
import (
"fmt"
)
//全局变量作用域
var Age int = 10
func test() int{
Age = 20
fmt.Println(Age)
return Age
}
func main() {
fmt.Println(Age)
f := test()
fmt.Println(f)
}
如果变量是在一个代码块,比如for/if中, 那么这个变量的的作用域就在该代码块。
//变量作用域
package main
import (
"fmt"
)
func main() {
for i:= 0; i <= 10; i++ {
}
fmt.Println(i)
}
二、练习一
判断输出结果
//变量作用域
package main
import (
"fmt"
)
var name = "tom"
func test01(){
fmt.Println(name)
}
func test02(){
//当全局变量与局部变量同名时采用就近原则
name := "jack"
fmt.Println(name)
}
func main() {
fmt.Println(name) //tom
test01() //tom
test02() //jack
test01() //tom
}
练习二
判断输出结果
//变量作用域
package main
import (
"fmt"
)
var Age int = 10
Name := "tom" //报错,不能在函数外使用定义并赋值
}
func main() {
fmt.Println("name",Name)
}