22 Go 语言中的函数
优质
小牛编辑
142浏览
2023-12-01
本文来介绍 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 语言的函数更加强大,能够多参数返回,返回值更是能直接写做变量,且作用域为整个函数。