1) 测试代码
1. example1.go
package main
import (
"fmt"
)
var a string // 定义一个string类型的全局变量a
func main() {
a = "male"
fmt.Println(a)
f1()
}
func f1() {
// var a string = "female" // 这个是一条语句,定义一个局部变量a
a := "female" // 这个是两条语句 var a string ; a = "female",虽然和上面的效果一样,但是是不一样的
fmt.Println(a)
f2()
for i := 1; i < 2; i++ {
fmt.Println(a)
}
f2()
}
func f2() {
fmt.Println(a)
}
执行测试:
go run example1.go
male
female
male
female
male
2. example2.go
package main
import (
"fmt"
)
var a int = 100
func modify()
//a = 10 // 这个是改变了全局变量a的值
a := 10 // 这个是先创建一个局部变量a,然后赋值为10,没有修改全局变量a
fmt.Println("在modify函数里a=", a)
}
func main() {
modify()
fmt.Println(" 在main函数里a=", a)
}
执行测试
go run example2.go
在modify函数里a= 10
在main函数里a= 100
网友评论