8 函数
8 函数
函数是组织好的、可重复使用的、用于执行指定任务的代码块
Go 中支持函数、匿名函数和闭包,并且函数在Go中属于”一等公民”
函数定义
具体格式:
```go
func 函数名(参数)(返回值){函数体
}
1
2
3
4
5
6
7
8
9
10
11
12
* **函数名**:*字母、数字、下划线*组成。在**同一个包内**,函数名不能重复
* **参数**:由 *参数变量和参数变量* 的类型组成,多个参数使用**逗号**隔开
* **返回值**:由 *返回值变量和其类型* 组成,也**可以只写返回值类型**,**多个返回值必须用`()`包裹**,并用逗号隔开
* **函数体**:实现指定功能的代码块
* 示例:
* ```go
func intSum(x int, y int) int {
return x +y
}函数的参数和返回值都是可选的
函数的调用
- 定义函数后,使用
函数名()
调用函数 - 调用有返回值的函数时,可以不接收其返回值
参数
类型简写
- 函数参数列表 中,若相邻变量的参数相同,则可以省略左边的类型
*
1 | func intSum(x, y int) int{ |
可变参数
可变参数:函数的参数数量不固定
在参数列表中加
...
标识前面一个变量是切片
```go
func intSum(x … int) int{//x是一个切片 sum := 0 for _,v := range x{ sum += v } return sum
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
* 调用仅含有可变参数的函数时:可有0或多个变量
* 固定参数 搭配可变参数时,可变参数放在固定参数后:
* ```go
func intSum(x int, y ... int) int{
sum := x
for _,v := range y{
sum += v
}
return sum
}
调用含有混合型的参数时,必须要有固定参数
本质上,可变参数通过切片实现
返回值
- Go 中通过关键字
return
向外输出返回值
多返回值
Go 支持多返回值,必须用
()
将所有返回值包裹起来- ```go
func calc(x,y int) (int,int){
}return x+y,x-y
1
2
3
4
5
6
7
8
9
10
11
12
13
#### 返回值命名
* 函数定义时, 可以给返回值命名,并在函数体内直接使用,最后只需要`return `关键字返回
* ```go
func calc(x,y int) (sum,sub int){
sum = x+y
sub = x-y
return
}
- ```go
返回值补充
- 当一个函数的返回值类型为 切片 时,
nil
可看作一个有效的 切片,没必要显示长度为零的切片
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment