Golang✔️走进 Go 语言✔️ 第八课 函数
Posted 我是小白呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang✔️走进 Go 语言✔️ 第八课 函数相关的知识,希望对你有一定的参考价值。
概述
Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 8 课)
函数
函数 (Function) 是基本的代码的代码块, 用于执行一个任务. 我们可以通过函数来划分不同功能, 逻辑上每个函数执行的是指定的任务.
函数是声明告诉了编译器函数的名称, 返回类型, 参数. 并返回该类型的长度. 如果我们传入的是字符串则返回字符串的长度. 如果传入的是数组, 则返回数组中包含的元素个数.
函数定义
格式:
func 函数名( [参数列表] ) [返回值类型] {
函数体
}
- func: 函数由 func 开始声明, 类似 python 的 def
- 函数名: 函数的名称, 函数名和参数列表一起构成了函数签名
- 参数列表: 参数就像一个站位符. 当函数被调用时, 我们可以将值传递给参数, 这个值就被称为实际参数. 参数列表制定的是参数类型, 顺序, 以及参数个数. 参数是可选的, 也就是说函数也可以不含参数
- 返回值类型: 函数返回一列值的数据类型. 有些功能不需要返回值, 所以返回值类型不是必须的
例子:
package main
import "fmt"
func main() {
// 调用函数add
var sum = add(2, 3)
fmt.Print(sum)
}
func add(num1 int, num2 int) int {
// 返回和
return num1 + num2
}
输出结果:
5
函数传递参数
例子:
package main
import "fmt"
func main() {
// 定义变量
var num = 100
fmt.Println("值: ", num, "地址: ", &num)
// 调用函数
revalue(num)
}
func revalue(num int) {
num = 1000
// 调试输出值和地址
fmt.Println("值: ", num, "地址: ", &num)
}
输出结果:
值: 100 地址: 0xc00000a088
值: 1000 地址: 0xc00000a0a8
我们可以看到两个num
的地址和值都不一样. main 里面的num
是实际参数, 而函数里的num
是形式参数.
函数传递地址
例子:
package main
import "fmt"
func main() {
// 定义变量
var num = 100
fmt.Println("值: ", num, "地址: ", &num)
// 调用函数
revalue(&num)
fmt.Println("值: ", num, "地址: ", &num)
}
func revalue(num *int) {
// 使用地址赋值
*num = 1000
}
输出结果:
值: 100 地址: 0xc00000a088
值: 1000 地址: 0xc00000a088
函数闭包
Go 语言支持匿名函数, 可作为闭包. 匿名函数是一 “内嵌” 语句或表达式. 匿名函数的优越性在于可以直接使用函数内的变量, 不必声明.
例子:
package main
import "fmt"
func main() {
// 匿名函数
var add = func(a int, b int) int {
return a + b
}
// 调试输出
fmt.Println(add(1, 2))
}
输出结果:
3
以上是关于Golang✔️走进 Go 语言✔️ 第八课 函数的主要内容,如果未能解决你的问题,请参考以下文章
Golang✔️走进 Go 语言✔️ 第十八课 通道关闭 & 工作池
Golang✔️走进 Go 语言✔️ 第十八课 通道关闭 & 工作池
Golang✔️走进 Go 语言✔️ 第九课 局部变量 vs 全局变量
Golang✔️走进 Go 语言✔️ 第九课 局部变量 vs 全局变量