Go语言基础之函数定义
函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。
Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。
一、函数定义
Go语言中定义函数使用func
关键字,具体格式如下:
func 函数名(参数)(返回值){
函数体
}
其中:
- 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念详见后文)。
- 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用
,
分隔。 - 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用
()
包裹,并用,
分隔。 - 函数体:实现指定功能的代码块。
我们先来定义一个求两个数之和的函数:
func intSum(x int, y int) int {
return x + y
}
相同的参数类型和多个返回值变量类型相同省略写一个
函数的参数和返回值都是可选的,例如我们可以实现一个既不需要参数也没有返回值的函数:
func sayHello() {
fmt.Println("Hello word")
}
二、函数定义方式
空函数
func empty(){
}
无参函数
func sayHello() {
fmt.Println("Hello word")
}
有参函数
func getName(name string) {
fmt.Println("name:", name)
}
返回值
func calc(x, y int) (int, int) {
sum := x + y
sub := x - y
return sum, sub
}
匿名函数
func(参数)(返回值){
函数体
}
三、函数的调用
定义了函数之后,我们可以通过函数名()
的方式调用函数。 例如我们调用上面定义的两个函数,代码如下:
函数直接调用
func main() {
sayHello()
ret := calc(10, 20)
fmt.Println(ret)
// 函数调用
}
注意,调用有返回值的函数时,可以不接收其返回值。
函数当作参数调用
func main() {
ret := calc(calc(10, 20),calc(30, 40))
fmt.Println(ret)
}
函数返回值参与运算
func main() {
ret := calc(30, 40) * 100
fmt.Println(ret)
}
四、总结
- 函数定义:
func 函数名(参数)(返回值){ 函数体 }
- 函数可以分为:空函数,无参函数,有参函数,返回值函数,匿名函数
- 函数调用:函数名+()
- 函数实现具体的封装功能,使用函数的好处,解决程序冗余,实现可读,可扩展,减少重复造轮子,函数是一种思想而不是一种技术