Golang✔️走进 Go 语言✔️ 第九课 局部变量 vs 全局变量

Posted 我是小白呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang✔️走进 Go 语言✔️ 第九课 局部变量 vs 全局变量相关的知识,希望对你有一定的参考价值。

【Golang】✔️走进 Go 语言✔️ 第九课 局部变量 vs 全局变量

概述

Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 9 课)

变量作用域

作用域 (Scope) 为已声明标识符所表示的常量, 类型, 变量, 函数或包在源码中的作用范围.

Go 语言中变量可以在三个地方声明:

  • 函数内定义的变量称为局部变量
  • 函数外定义的变量称为全局变量
  • 函数定义中的变量为形式参数

全局变量 vs 局部变量

我们可以在函数内调用全局变量, 但是不能再函数外调用局部变量.

例子:

// 全局变量
var name_global = "我是小白呀"

func main() {

	// 局部变量
	var name_local1= "王二狗"
	var name_local2 = "张三"

	// 调试输出
	fmt.Println("全局变量: ", name_global)
	fmt.Println("局部变量: ", name_local1)
	fmt.Println("局部变量: ", name_local2)
	
}

当我们在函数外调用局部变量的时候:


从上图我们可以看到, 代码报错了: 变量未定义.

形式参数 vs 实际参数

形式参数: 是在定义函数的时候使用的参数, 目的是用来接收调用该函数时传进来的实际参数.

实际参数: 就是在执行时, 调用函数时, 传递给函数的参数.

举个例子:

package main

import "fmt"

func main() {

	// 定义变量
	num1 := 1
	num2 := 2

	// 调用函数
	add(num1, num2)

	// 调试输出实参地址
	fmt.Println("num1 地址: ", &num1)
	fmt.Println("num2 地址: ", &num2)
}

// num1, num2为形式参数
func add(num1 int, num2 int) int {

	// 调试输出形参地址
	fmt.Println("num1 地址: ", &num1)
	fmt.Println("num2 地址: ", &num2)

	return num1 + num2
}

输出结果:

num1 地址:  0xc00000a0a8
num2 地址:  0xc00000a0b0
num1 地址:  0xc00000a088
num2 地址:  0xc00000a0a0

以上是关于Golang✔️走进 Go 语言✔️ 第九课 局部变量 vs 全局变量的主要内容,如果未能解决你的问题,请参考以下文章

Golang✔️走进 Go 语言✔️ 第十课 数组

Golang✔️走进 Go 语言✔️ 第十课 数组

Golang✔️走进 Go 语言✔️ 第十九课 错误处理 & 时间处理

Golang✔️走进 Go 语言✔️ 第十九课 错误处理 & 时间处理

Golang✔️走进 Go 语言✔️ 第一课 Hello World

Golang✔️走进 Go 语言✔️ 第十四课 排序