Go 语言变量作用域学习笔记

变量作用域简介

变量作用域指的是程序内可以直接访问到该变量的区域。在 Go 语言中,变量的作用域分为两种:全局作用域和局部作用域。

  • 全局作用域:定义在函数外部或是包级别范围内的变量拥有全局作用域,可以被整个程序访问。
  • 局部作用域:定义在一个函数或语句块内的变量拥有局部作用域,只能在声明它的函数或语句块中使用。

实例演示

goCopy Code
package main import "fmt" var a = 10 // 全局变量 func main() { var b = 20 // 局部变量 fmt.Printf("a = %d, b = %d\n", a, b) test() } func test() { fmt.Printf("a = %d\n", a) //fmt.Printf("b = %d\n", b) // 此处无法编译通过,因为变量 b 的作用域只在 main 函数中 }

在上面这个例子中,变量 a 是全局变量,可以被所有函数访问;变量 b 是在 main 函数中声明的局部变量,只能在 main 函数中使用。

test 函数中,我们尝试访问变量 b,但编译器会报错,因为在 test 函数中无法访问 main 函数内的局部变量。

总结起来,变量作用域在 Go 语言中非常重要,我们需要合理利用全局变量和局部变量,减少变量的冲突和误用。