golang

Go

模块二 GO语言进阶技术-错误处理(下)

41 0

在上一篇文章中,我们主要讨论的是从使用者的角度看“怎样处理好错误值”。那么,接下来我们需要关注的,就是站在建造者的角度,去关心“怎样才能给予使用者恰当的错误值”的问题了。知识扩展问题:怎样根据实际情况给予恰当的错误值?我们已经知道,构建错误值体系的基本方式有两种,即:创建立体的错误类型体系和创建扁平的错误值列表。先说错误类型体系。由于在 Go 语言中实现接口是非侵入式的,所以我们可以做得很灵活。比如,在标准库的net代码包中,有一个名为Error的接口类型。它算是内建接口类型error的一个扩展接口,因为

Go

模块二 GO语言进阶技术-PANIC函数、RECOVER函数以及DEFER语句(下)

66 0

我在前一篇文章提到过这样一个说法,panic 之中可以包含一个值,用于简要解释引发此 panic 的原因。如果一个 panic 是我们在无意间引发的,那么其中的值只能由 Go 语言运行时系统给定。但是,当我们使用panic函数有意地引发一个 panic 的时候,却可以自行指定其包含的值。我们今天的第一个问题就是针对后一种情况提出的。知识扩展问题 1:怎样让 panic 包含一个值,以及应该让它包含什么样的值?这其实很简单,在调用panic函数时,把某个值作为参数传给该函数就可以了。由于panic函数的唯一

Go

模块三 GO语言实战与应用-测试的基本规则和流程(上)

38 0

在接下来的日子里,我将带你去学习在 Go 语言编程进阶的道路上,必须掌握的附加知识,比如:Go 程序测试、程序监测,以及 Go 语言标准库中各种常用代码包的正确用法。从上个世纪到今日今时,程序员们,尤其是国内的程序员们,都对编写程序乐此不疲,甚至废寝忘食(比如我自己就是一个例子)。因为这是我们普通人训练自我、改变生活、甚至改变世界的一种特有的途径。不过,同样是程序,我们却往往对编写用于测试的程序敬而远之。这是为什么呢?我个人感觉,从人的本性来讲,我们都或多或少会否定“对自我的否定”。我们不愿意看到我们编写

Go

手撸golang spring ioc/aop 之1

56 0

手撸golang spring ioc/aop 之1 缘起 最近阅读 [Offer来了:Java面试核心知识点精讲(框架篇)] (王磊 , 2020.6) 本系列笔记拟采用golang练习之 Spring Spring基于J2EE技术实现了一套轻量级的Java Web Service系统应用框架。 它有很多优秀的特性,很多公司都选择把Spring作为产品或项目的基础开发架构。Spring的特性包括轻量、控制反转(Inversion of Control, IoC)、面向容器、 面向切面(AspectOri

Go

leetcode154 寻找旋转排序数组中的最小值 II golang

39 0

154. 寻找旋转排序数组中的最小值 II 题目 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,4] 若旋转 7 次,则可以得到 [0,1,4,4,5,6,7] 注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[

Go

使用 Go 1.16 的 signal.NotifyContext 让你的服务重启更优雅

77 0

在 Go 1.16 的更新中,signal包增加了一个函数 NotifyContext, 这让我们优雅的重启服务(Graceful Restart)可以写的更加优雅。 一个服务想要优雅的重启主要包含两个方面:退出的旧服务需要 Graceful Shutdown,不强制杀进程,不泄漏系统资源。 在一个集群内轮流重启服务实例,保证服务不中断。第二个问题跟部署方式相关,改天专门写一篇讨论,今天我们主要谈怎么样优雅的退出。 首先在代码里,用了外部资源,一定要使用defer去调用Close()方法关闭。 然后我们就

Go

Go 执行命令获取结果 golang os/exec StdoutPipe StdinPipe

184 0

go语言执行命令 go在执行Cmd/Shell命令时,跟一些语言是有区别的. 在不调用shell的情况下,需要自己对每个步骤手动写 我的目的是执行 netstat -aon | findstr :80 //Win netstat -ano | grep :80 //Unix因为中间加了管道| 所以很多资料都不能满足我的想法 所以自己手动找了很多资料实现了 过程cmdNetstat cmdGrep netstatOutPutPip (输出管道) grepInPutPip(输入管道) cmdNetsta

Go

Go的切片(进阶版)

29 0

文章有重大错误,正在修改中 (话说这个站怎么锁定文章或者删掉文章啊?)