前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go编程基础-基础篇 18

Go编程基础-基础篇 18

原创
作者头像
未来最可爱的人
修改2021-04-01 10:03:56
2640
修改2021-04-01 10:03:56
举报
文章被收录于专栏:编程基础编程基础编程基础

函数式编程

函数是一等公民,即函数可以做为变量

纯函数,即函数内的操作不可影响到函数外

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 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数式编程
  • 语言中的错误和异常处理
  • 异常处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档