GO 变量作用域


package main

import (
    "fmt"
)

var (
    A = 1 //全局变量,一般建议大写字母,所有地方可以访问,跨 package 访问时需要带上 package 名称
    B = 2
    C = 3
)

func main() {
    A := 4 //局部变量,仅本函数内部访问,内部声明的变量可以和外部声明的变量冲突(即同名),以内部的变量为准
    {
        B := 5                                                      //仅 {} 圈定的作用域内可以访问,支持与外部的变量冲突(即同名)
        fmt.Printf("A = [%d]\n\rB = [%d]\n\rC = [%d]\n\r", A, B, C) //A 为 mian 函数内部定义的;B 为内部定义的;C 为全局定义的
    }
    fmt.Println("-----------------------")
    fmt.Printf("A = [%d]\n\rB = [%d]\n\rC = [%d]\n\r", A, B, C) //A 为 mian 函数内部定义的;B 为全局定义的;C 为全局定义的
}

以上实例执行结果为:

A = [4]
B = [5]
C = [3]
-----------------------
A = [4]
B = [2]
C = [3]

点赞

发表回复

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