函数的返回值
# 一、函数的返回值
# 1.1 什么是函数的返回值
- 一个函数被调用后,返回给调用处的执行结果,叫做函数的返回值.
- 调用处需要使用变量接收该结果
# 1.2 一个函数可以返回多个值
- 一个函数可以没有返回值,也可以有一个返回值,也可以有返回多个值.
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
func SumAndProduct(A, B int) (add int, Multiplied int) {
add = A+B
Multiplied = A*B
return
}
1
2
3
4
5
2
3
4
5
# 1.3 空白标识符
_
是Go
中的空白标识符.它可以代替任何类型的任何值.让看看这个空白标识符的用法.
比如rectProps
函数返回的结果是面积和周长,如果只要面积,不要周长,就可以使用空白标识符.
package main
import (
"fmt"
)
func rectProps(length, width float64) (float64, float64) {
var area = length * width
var perimeter = (length + width) * 2
return area, perimeter
}
func main() {
area, _ := rectProps(10.8, 5.6) // perimeter is discarded
fmt.Printf("Area %f ", area)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1.4.示例代码
package main
import "fmt"
func main() {
/*
函数的返回值:
一个函数的执行结果,返回给函数的调用处.执行结果就叫做函数的返回值.
return语句:
一个函数的定义上有返回值,那么这个函数中必须使用return语句,将结果返回给调用处.
函数返回的结果,必须和函数定义的一致: 类型、个数、顺序
1.将函数的结果返回给调用处
2.同时结束了该函数的执行
空白标识符,专门用于舍弃数据: _
*/
//1.设计一个函数,哟弄关于求1-10的和,将结果在主函数中打印输出
res := getSum()
fmt.Println("1-10的和: ", res)
fmt.Println(getSum2())
res1, res2 := rectangle(5, 3)
fmt.Printf("周长:%.2f,面积:%.2f\n", res1, res2)
res3, res4 := rectanle2(5, 3)
fmt.Printf("周长:%.2f,面积:%.2f\n", res3, res4)
res5, _ := rectangle(5, 3)
fmt.Printf("周长:%.2f\n", res5)
}
//函数,用于求矩形的周长和面积
func rectangle(len, wid float64) (float64, float64) {
perimeter := (len + wid) * 2
area := len * wid
return perimeter, area
}
func rectanle2(len, wid float64) (peri, area float64) {
peri = (len + wid) * 2
area = len * wid
return
}
//定义一个函数,带返回值
func getSum() int {
sum := 0
for i := 0; i <= 10; i++ {
sum += i
}
return sum
}
func getSum2() (sum int) { //定义函数时,指明要返回的数据是哪一个
//fmt.Println("函数中: ", sum)
for i := 1; i <= 100; i++ {
sum += i
}
return
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
上次更新: 2024/04/09, 16:48:42
- 01
- AWS NAT-NetWork-Firwalld配置(一)04-09
- 02
- AWS NAT-NetWork-Firwalld配置(二)04-09
- 03
- kubernetes部署minio对象存储01-18