【Golang】✔️走进 Go 语言✔️ 第八课 函数

举报
我是小白呀iamarookie 发表于 2021/09/10 00:00:50 2021/09/10
【摘要】 【Golang】✔️走进 Go 语言✔️ 第八课 概述函数函数定义函数传递参数函数传递地址函数闭包 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Gola...

【Golang】✔️走进 Go 语言✔️ 第八课

概述

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

在这里插入图片描述

函数

函数 (Function) 是基本的代码的代码块, 用于执行一个任务. 我们可以通过函数来划分不同功能, 逻辑上每个函数执行的是指定的任务.

在这里插入图片描述
函数是声明告诉了编译器函数的名称, 返回类型, 参数. 并返回该类型的长度. 如果我们传入的是字符串则返回字符串的长度. 如果传入的是数组, 则返回数组中包含的元素个数.

函数定义

格式:

func 函数名( [参数列表] ) [返回值类型] {
    函数体
}

  
 
  • 1
  • 2
  • 3
  • 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
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

输出结果:

5

  
 
  • 1

函数传递参数

例子:

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)
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

输出结果:

值:  100 地址:  0xc00000a088
值:  1000 地址:  0xc00000a0a8

  
 
  • 1
  • 2

我们可以看到两个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
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

输出结果:

值:  100 地址:  0xc00000a088
值:  1000 地址:  0xc00000a088

  
 
  • 1
  • 2

函数闭包

Go 语言支持匿名函数, 可作为闭包. 匿名函数是一 “内嵌” 语句或表达式. 匿名函数的优越性在于可以直接使用函数内的变量, 不必声明.

例子:

package main

import "fmt"

func main() {

	// 匿名函数
	var add = func(a int, b int) int {
		return a + b
	}

	// 调试输出
	fmt.Println(add(1, 2))
	
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

输出结果:

3

  
 
  • 1

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/119559833

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。