函数概述
- 函数是对一段能够重复使用的代码的封装
- 函数的参数定义了外界给函数输入的数据
- 函数的返回值定义了函数给外界输出的数据
- Go语言函数支持不定长参数和多个返回值
@函数定义和调用
//定义函数
func sayHello() {
fmt.Println("fuck off!")
}
//调用函数
sayHello()
@函数参数
无参函数
func add0() {
fmt.Println("没参数,add你妹啊")
}
带参函数
func add1(a int) {
fmt.Println("收到一个参数", a)
fmt.Println("一个参数,add你妹啊")
}
多个参数
//多个参数
func addm1(a int, b int) {
fmt.Println("加和是", a+b)
}
//类型相同的参数被合写在一起了
func addm2(a, b int) {
fmt.Println("加和是", a+b)
}
//类型不同的参数
func addm3(a, b int, c float32) {
fmt.Println("加和是", float32(a)+float32(b)+c)
}
不定长参数
func addx(x ...int) {
//参数的长度是 5
fmt.Println("参数的长度是", len(x))
//参数的类型是[]int
fmt.Printf("参数的类型是%T\n", x)
var result = 0
//遍历不定长参数
for i, v := range x {
fmt.Println(i, v)
result += v
}
//加和是 15
fmt.Println("加和是", result)
}
@函数返回值
无返回值
//无返回值
func sub0(a, b int) {
fmt.Println("相减的结果是", a-b)
}
有返回值
//有返回值
func sub11(a, b int) int {
fmt.Println("相减的结果是", a-b)
return a - b
}
func sub12(a, b int) (ret int) {
fmt.Println("相减的结果是", a-b)
ret = a - b
return
}
多个返回值
//多个返回值
func subm1(a, b int) (int, string) {
fmt.Println("相减的结果是", a-b)
return a - b, "你妹"
}
func subm2(a, b int) (ret int, remark string) {
fmt.Println("相减的结果是", a-b)
ret = a - b
remark = "你妹"
return
}