22. Go 语言中的函数
本文来介绍 Go 语言中的函数。Go 语言的函数和其它语言的用法类似,但是 Go 语言中所有东西都是变量,包括函数,函数在 Go 语言中也是变量的一种,所以函数名的命名规则和变量名相同,同时这个和我们后面要讲解的函数式编程有关,目前本文仅介绍 Go 语言中函数的声明和使用。
1. 函数的定义和使用
Go 语言中,通过 func 关键字来声明和定义函数。Go 语言和 C 语言不同,Go 语言函数的声明和定义是一起的,不存在先声明在定义,且声明时不分前后均可互相调用。
代码示例:
package main
import "fmt"
func print(s string) {
fmt.Println(s)
}
func main() {
print("Hello Codey !")
}
- 第 5 行:声明并定义一个名叫 print 的函数,函数接收一个 string 类型的参数;
- 第 6 行:函数体。一个输出接收进来参数的值的语句;
- 第 9 行:声明并定义了一个叫 main 的函数。Go 语言中程序的入口就时 main 函数,所有的程序都以 main 函数作为入口;
- 第 10 行:调用 print 函数,传入参数”Hello Codey !”。
执行结果:

2. 函数的返回值
Go 语言的函数的返回值也有些特殊,它可以一次返回**多个返回值,**Go 语言中如果是单返回值,可以直接在函数声明的括号后面增加数据类型,代码示例如下:
func Sum(a, b int) int //声明并定义一个返回值为 int 数据类型的函数
若要返回多个返回值,则需要用括号包裹返回值,并使用,隔开所有返回值,代码示例如下:
func Sum(a, b int) (int,string) //声明并定义一个返回值为 int 和 string 数据类型的函数
返回的方式有两种。一种是用 return 关键字加返回值直接返回,一种是声明返回值变量,使用返回值变量直接返回。
2.1 使用 return+ 返回值返回
和其它语言不同的是,Go 语言可以一次返回多个值,多个值直接跟在 return 关键字之后,使用,隔开即可。
代码示例:
package main
import "fmt"
func SumAndProduct(a, b int) (int, int) {
c := a + b
d := a * b
return c, d //同时返回 c 和 d 两个变量
}
func main() {
sum, product := SumAndProduct(1, 2) //接收多返回值的函数时,也需要用逗号隔开变量
fmt.Println("a + b =", sum)
fmt.Println("a * b =", product)
}
执行结果:

2.2 使用返回值变量返回
Go 语言还能直接在返回值处声明变量,这个变量的作用域是整个函数,并且会在 return 的时候直接返回。
代码示例:
package main
import "fmt"
func SumAndProduct(a, b int) (c int, d int) {
c = a + b //因为 c 和 d 函数返回值处已经定义了,可以直接使用
d = a * b
return //直接返回,c 和 d 自动传出去
}
func main() {
sum, product := SumAndProduct(1, 2) //接收多返回值的函数时,也需要用逗号隔开变量
fmt.Println("a + b =", sum)
fmt.Println("a * b =", product)
}
执行结果:

3. 小结
本文主要介绍了 Go 语言中函数的定义和使用。主要就是和其它语言比起来,Go 语言的函数更加强大,能够多参数返回,返回值更是能直接写做变量,且作用域为整个函数。
以上关于22. Go 语言中的函数的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 22. Go 语言中的函数
微信
支付宝