Go作用域

Posted yzg-14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go作用域相关的知识,希望对你有一定的参考价值。

package main

import "fmt"

//全局变量的定义
//num3 := 1000//不支持简短定义的写法
var num3 = 1000
func main() {
	/*
	作用域:变量可以使用的范围。
		局部变量:函数内部定义的变量,就叫做局部变量。
					变量在哪里定义,就只能在哪个范围使用,超出这个范围,我们认为变量就被销毁了。

		全局变量:函数外部定义的变量,就叫做全局变量。
					所有的函数都可以使用,而且共享这一份数据

	 */
	//定义在main函数中,所以n的作用域就是main函数的范围内
	 n:= 10
	 fmt.Println(n)

	 if a := 1;a <= 10{
	 	fmt.Println(a) // 1
	 	fmt.Println(n) // 10
	 }
	 //fmt.Println(a) //不能访问a,出了作用域
	 fmt.Println(n)

	 if b := 1;b <= 10{
	 	n := 20
	 	fmt.Println(b) // 1
	 	fmt.Println(n) // 20
	 }

	 fun1()
	 fun2()
	 fmt.Println("main中访问全局变量:",num3) //2000

}

func fun1(){
	//fmt.Println(n)
	num1 := 100
	fmt.Println("fun1()函数中:num1:",num1)
	num3 = 2000
	fmt.Println("fun1()函数,访问全局变量:",num3) // 2000
}

func fun2()  {
	num1 := 200
	fmt.Println(num1)
	fmt.Println("fun2()函数,访问全局变量:",num3) //2000
}

  

以上是关于Go作用域的主要内容,如果未能解决你的问题,请参考以下文章

Go的变量作用域

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量作用域:能够使用变量的代码范围

JS作用域作用域链

JS 作用域及作用域链

JS 作用域及作用域链

Go变量作用域