函数是一等公民,即函数可以做为变量
纯函数,即函数内的操作不可影响到函数外
package main
import "fmt"
type iAdder func(int) int
func adder() iAdder {
sum := 0
return func(i int) int {
sum += i
return sum
}
}
func main() {
a := adder()
var s int
for i := 1; i <= 100; i++ {
s = a(i)
}
fmt.Println(s)
}
5050
package main
import (
"errors"
"fmt"
)
func main() {
t, err := devide(2, 0)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(t)
}
}
func devide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
return a / b, nil
}
除数不能为0
GO 语言提供了一个叫recover()的函数,用于处理这种问题。一般常用于服务启动的入口函数,因为网络等外部因素,极有可能会导致程序异常,这些异常就需要这个函数来捕获。
package main
import "fmt"
func divide(a, b int) int {
return a / b
}
func main() {
defer func() {
err := recover()
if err != nil {
fmt.Println("程序运行中出现异常:", err)
}
}()
t := divide(2, 0)
fmt.Println(t)
}
程序运行中出现异常: runtime error: integer divide by zero
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。