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 语言✔️ 第十九课 错误处理 & 时间处理