作者:看那个码农
公众号:看那个码农
上期内容介绍了Go语言学习之字符串应用|Go主题月
- 计算字符串长度
- 遍历字符串,获取每个字符串字符
- 获取字符串的某一段字符
- 修改字符串
- 连接字符串
- 格式化
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
Go语言的声明函数
本文的内容主要有以下几点
- 函数的定义
- 函数的声明形式
- 返回单个值的函数
- 返回多个数的函数
- 使用具名返回值
- 把函数作为值保存在变量中
下面我们就来看看这些用法
2.函数的定义
函数是Go语言的一个核心元素,是组织好的、可重复利用的、用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的可重复利用性
简单来说,函数接受输入并返回输出。数据流经函数时候,数据的值将被变换。
3.函数的声明形式
Go语言的函数声明以func标识,后面紧接着函数名、参数列表、返回参数列表及函数体,具体形式如下:
func 函数名(参数列表)(返回参数列表){
函数体
}
- 函数名:由字母、数字、下划线组成,其中函数名的第一个字母不能为数字。
- 在同一个包内,函数名称不能重复。
一个典型的函数示例是将两个数相加的简单函数,这个函数接受两个数字,将它们相加并返回结果。
package main
import "fmt"
func add(x int,y int) int{
return x+y
}
func main() {
var a =10
var b =20
fmt.Println(add(a,b))
}
输出为
4.返回单个值的函数
在最简单情况下,Go语言的函数接受一个输入并返回一个输出。
比如输出前10个斐波拉契数列
- 斐波那契数列指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……
- 特别指出:第0项是0,第1项是第一个1。
- 这个数列从第三项开始,每一项都等于前两项之和。
代码案例如下:
package main
import "fmt"
func fibonacci(n int) (res int) {
if n <= 1 {
res = 1
} else {
res = fibonacci(n-1) + fibonacci(n-2)
}
return
}
func main() {
result := 0
for i := 0; i <= 10; i++ {
result = fibonacci(i)
fmt.Printf("第(%d)个斐波拉契数列是: %d\n", i, result)
}
}
输出为
该代码是采用递归的方式实现斐波拉契数列,并且案例中的函数是接受一个输入后,返回值就只有一个数
5.返回多个值的函数
Go语言中,可在函数声明中声明多个返回值,让函数返回多个结果,在这种情况下,终止语句可返回多个值。
例如下面的案例:
package main
import "fmt"
func values() (int,int,string) {
return 9,8,"加油!"
}
func main() {
a,b,c:=values()
fmt.Printf("我吃了%v碗酸辣粉,%v份臭豆腐,%v",a,b,c)
}
输出为
在该案例中函数定义的时候指出不接受任何参数,并且直接返回两个整数和一个字符串 在函数体中使用return语句返回了多个用逗号分隔的参数。
6.使用具名返回值
具名返回值让函数能够在返回前将值赋给具名变量,这有助于提升函数的可读性,使函数的功能更加明确。
例如下面的案例
package main
import "fmt"
func hello() (x,y string) {
x ="Hello "
y ="World!"
return
}
func main() {
fmt.Println(hello())
}
输出为:
上面这个案例中在函数签名处指定了将返回值的类型为string,并且还指定了变量名(x和y)
这种函数体中,在终止语句return前给具名变量进行了赋值。
7.把函数作为值保存在变量中
在Go语言中,函数也是一个类型,可以和其它数据类型一样被保存在变量中。
例如下面这个案例
package main
import "fmt"
func hello(){
fmt.Println("Hello,World!")
}
func main() {
var h func()
h = hello
h()
}
输出为
在上述案例中,首先定义了一个函数变量h,并将一个函数名hello
赋给函数变量h
,这样在调用函数变量h
的时候,实际上就是调用的是已经声明好的函数hello()
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情