函数作为类型使用
func main() {
a := A
a()
}
func A() {
fmt.Println("Func A")
}
闭包
func main() {
f := closure(10)
// 11
fmt.Println(f(1))
return func(y int) int{
return x + y
}
}
延迟调用函数 defer
-Go 没有异常机制,但有 panic
/ recover
模式来处理错误
-panic
可以在任何地方引发,但 recover
只有在 defer
调用的函数中有效
func main() {
A()
C()
}
func A() {
fmt.Println("A")
func B() {
//捕获
defer func() {
if err := recover(); err != nil {
fmt.Println("Recover in B")
}
}()
panic("B")
}
func C() {
}