golang变量的作用域测试

1) 一个golang代码main.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)
}

2) 执行

go run main.go

male
female
male
female
male

发表评论

电子邮件地址不会被公开。 必填项已用*标注