函数
2022-02-08 大约 2 分钟
为完成某一功能的程序指令(语句)的集合,称为函数。主要为了提高代码的复用性,减少代码的沉余,代码的维护性也提高了
# 基本使用
命名规范:
- 遵循标识符命名规范。
- 首字母不能是数字。
- 首字母大写该函数可以被本包文件和其它包文件使用。
- 首字母小写只能被本包文件使用,其他包文件不能使用。
语法:
func 函数名(形参列表) (返回值类型列表) {
// ...逻辑代码
return [返回值列表]
}
1
2
3
4
2
3
4
// demo.go
package main
import "fmt"
var n4 = 34
var n5 = 23
// 声明一个函数
func cal(n1 int, n2 int) int {
var num int = n1 + n2
return num
}
func main() {
// 调用函数
num := cal(n4, n5)
fmt.Println(num) // 57
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 返回值
# 没有返回值
// 声明一个函数
func cal(n1 int, n2 int) {
var num int = n1 + n2
fmt.Println(num)
}
1
2
3
4
5
2
3
4
5
# 一个返回值
// 声明一个函数
func cal(n1 int, n2 int) int {
var num int = n1 + n2
return num
}
1
2
3
4
5
2
3
4
5
如果返回值只有一个的话,返回值的类型
int
可以不加括号。
# 两个返回值
package main
import "fmt"
var n4 = 34
var n5 = 23
func cal(n1 int, n2 int) (int, int) {
var num int = n1 + n2
var result int = n1 - n2
return num, result
}
func main() {
num, result := cal(n4, n5)
fmt.Println(num, result) // 57 11
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
如果你只想接收一个参数,那么你可以使用占位符_
代替。
func main() {
num, _ := cal(n4, n5)
fmt.Println(num) // 57
}
1
2
3
4
2
3
4
_
会被go忽略。
# 通过指针改变值
通过指针改变函数外的值
package main
import "fmt"
func test(num *int) {
*num = 30
}
func main() {
var num int = 0
test(&num)
fmt.Println(num) // 30
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 自定义数据类型
为了简化数据类型定义,Go支持自定义数据类型
语法:
type 自定义数据类型名 数据类型
1
func main() {
// 自定义数据类型 myInt
type myInt int
var a myInt = 30
fmt.Println(a) // 30
}
1
2
3
4
5
6
2
3
4
5
6