func
函数是通过func
关键字来声明的,基本结构如下:
func funcName(input1 type1, input2 type2) (output1 type1, output2 type2) {
//这里是处理逻辑代码
//返回多个值
return value1, value2
}
变参:指定函数接收不定数量的参数。
func funcName(arg ...int) {}
函数传参 要考虑的是传入的参数需不需要改变原始值。
package main
import "fmt"
//简单的一个函数,实现了参数+1的操作
func add1(a *int) int { // 请注意,
*a = *a+1 // 修改了a的值
return *a // 返回新值
}
func main() {
x := 3
fmt.Println("x = ", x) // 应该输出 "x = 3"
x1 := add1(&x) // 调用 add1(&x) 传x的地址
fmt.Println("x+1 = ", x1) // 应该输出 "x+1 = 4"
fmt.Println("x = ", x) // 应该输出 "x = 4"
}
传指针的好处在哪?
defer
关键字defer
:延迟调用。
package main
import "fmt"
//多个defer语句,按先进后出的方式执行。
func main() {
for i := 0; i < 5; i++ {
defer fmt.Println(i)
}
}
输出:
4
3
2
1
0
Process finished with exit code 0