首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go编程基础-基础篇 18

Go编程基础-基础篇 18

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

函数式编程

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

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

代码语言:txt
AI代码解释
复制
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)
}
代码语言:txt
AI代码解释
复制
5050

语言中的错误和异常处理

代码语言:txt
AI代码解释
复制
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
}
代码语言:txt
AI代码解释
复制
除数不能为0

异常处理

GO 语言提供了一个叫recover()的函数,用于处理这种问题。一般常用于服务启动的入口函数,因为网络等外部因素,极有可能会导致程序异常,这些异常就需要这个函数来捕获。

代码语言:txt
AI代码解释
复制
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)
}
代码语言:txt
AI代码解释
复制
程序运行中出现异常: runtime error: integer divide by zero

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go 项目实战:全局异常处理
在 Go 项目开发中,有效的异常处理是确保程序健壮性和稳定性的关键因素之一。全局异常处理机制能够统一处理项目中可能出现的各种异常情况,提高代码的可读性、可维护性以及错误处理的一致性。
阿珍
2025/07/01
1080
Go 项目实战:全局异常处理
【提高篇】GO语言标准错误处理机制error用法实例
本文实例讲述了GO语言标准错误处理机制error用法。分享给大家供大家参考。具体分析如下: 在 Golang 中,错误处理机制一般是函数返回时使用的,是对外的接口,而异常处理机制 panic-recover 一般用在函数内部。 error 类型介绍 error 类型实际上是抽象了 Error() 方法的 error 接口,Golang 使用该接口进行标准的错误处理。 type error interface { Error() string } 一般情况下,如果函数需要返回错误,就将 error 作为
李海彬
2018/03/27
6740
Golang深入浅出之-Go语言 defer、panic、recover:异常处理机制
Go语言通过defer、panic和recover三个关键字构建了一种独特的异常处理机制。它们协同工作,使得Go程序能够优雅地处理运行时错误和异常情况。本文将深入浅出地解析这三个关键字的用法、特点以及常见问题与易错点,并通过代码示例进行演示。
Jimaks
2024/04/24
4.5K0
【愚公系列】2022年08月 Go教学课程 038-异常处理
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况,异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。
愚公搬代码
2022/09/21
1800
【愚公系列】2022年08月 Go教学课程 038-异常处理
golang异常处理详解
小熊今天有意外收获,忍不住给大家分享我愉快的心情!昨天中午下楼取外卖的时候被一个同事认出来了,他问我:“是不是【编程三分钟】的作者,文章写的不错”。
机智的程序员小熊
2020/06/03
1K0
golang异常处理详解
Go语言入门——进阶语法篇(四)
Go语言没有类似Java或Python那种try...catch...机制处理异常,Go的哲学是与众不同的,Go的设计者认为主流的异常处理机制是一种被过度滥用的技巧,而且存在很大的潜在危害,Go的异常处理(或者说是错误处理)是一种非常简单直观的方式。通常的,我们在写Java、Python之类的代码时,遇到可能存在的异常,直接用try括起来,使用catch捕获,然后就万事大吉了,当系统长时间的运行时,大大增加了不稳定性,所积累的问题可能在某一刻爆发。而Go者使用一种称为"恐慌的"机制,在有必要时,直接让系统宕机,让问题发生时立刻暴露出来,不必累积。很难说哪种设计更好,但Go语言确实简化了代码。
arcticfox
2019/09/03
5740
人非圣贤孰能无过,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang错误处理机制EP11
    人非圣贤,孰能无过,有则改之,无则加勉。在编程语言层面,错误处理方式大体上有两大流派,分别是以Python为代表的异常捕获机制(try....catch);以及以Go lang为代表的错误返回机制(return error),前者是自动化流程,模式化的语法隔离正常逻辑和错误逻辑,而后者,需要将错误处理判断编排在正常逻辑中。虽然模式化语法更容易让人理解,但从系统资源开销角度看,错误返回机制明显更具优势。
用户9127725
2022/09/22
2130
golang学习笔记——异常
err1 := fmt.Errorf("%s", "this is normal error")
码缘
2021/03/04
2730
golang当中的错误处理--筑基五层
在前面的几篇文章当中,我们主要是学习了Golang当中文件的读写以及数据的编码方式相关的知识。接下来,我们将开始来学习Golang中的错误处理。
闻说社
2025/05/13
1370
golang当中的错误处理--筑基五层
三十分钟入门基础Go
Tech 导读 本篇文章适用于学习过其他面向对象语言(Java、Php),但没有学过Go语言的初学者。文章主要从Go与Java功能上的对比来阐述Go语言的基础语法、面向对象编程、并发与错误四个方面,能够让读者快速认识Go的相关语法与特性。
京东技术
2023/09/11
3000
三十分钟入门基础Go
关于go的错误处理机制
1:编译时错误,在编译时抛出的错误,例如有变量未出现使用,变量未声明直接使用等,此错误是在运行之前被编译器找出报错的
仙士可
2022/01/17
5130
26.Go异常处理-error接口
所谓的异常:当GO检测到一个错误时,程序就无法继续执行了,反而出现了一些错误的提示,这就是所谓的**"异常"**。
Devops海洋的渔夫
2022/01/17
2920
26.Go异常处理-error接口
18.Go语言-错误与异常
在 Go 中, 错误 使用内建的 error 类型表示。error 类型是一个接口类型,它的定义如下:
面向加薪学习
2022/09/04
4240
Go 语言异常处理
在 Java 和 C# 等编程语言中,错误处理通常是通过 try-catch 机制来管理的。当程序在 try 块中遇到错误时,catch 块会捕获该错误,并执行相应的处理逻辑。这种机制为处理异常提供了一种结构化的方法,确保即使在发生错误的情况下,应用程序也不会意外崩溃。
FunTester
2025/01/23
2140
Go 语言异常处理
Go两周入门系列-错误处理
go语言中主要有两类错误,一类是可预见的错误,不会导致程序退出,一类是不可预见的错误,会导致程序退出。
用户10002156
2023/10/08
2400
Go两周入门系列-错误处理
Go语言错误处理
错误指的是可能出现问题的地方出现了问题,比如打开一个文件时可能失败,这种情况在人们的意料之中。
Steve Wang
2020/12/25
5530
4.Go编程快速入门学习
描述: Go 语言中的指针区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算是安全指针。
全栈工程师修炼指南
2022/09/29
7190
4.Go编程快速入门学习
Go 语言错误及异常处理篇(三):panic 和 recover
前面学院君介绍了 Go 语言通过 error 接口统一进行错误处理,但这些错误都是我们在编写代码时就已经预见并返回的,对于某些运行时错误,比如数组越界、除数为0、空指针引用,这些 Go 语言是怎么处理的呢?
学院君
2019/08/19
1.7K0
Go 语言错误及异常处理篇(三):panic 和 recover
go-函数
函数的参数和返回值都是可选的,例如我们可以实现一个既不需要参数也没有返回值的函数:
新人小试
2020/03/05
9440
go-函数
【初识Go】| Day10 异常处理
针对这样的情况,Go语言中引入 error 接口类型作为错误处理的标准模式,如果函数要返回错误,则返回值类型列表中肯定包含 error。error 处理过程类似于C语言中的错误码,可逐层返回,直到被处理。
yussuy
2020/12/23
3090
【初识Go】| Day10 异常处理
相关推荐
Go 项目实战:全局异常处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档