计算机

使用delve调试Golang程序

delve是一款专门针对 Golang 程序调试而开发的命令行调试器,该工具功能强大,简单易用。 本文从安装开始,使用一个实际的 Golang 程序调试例子,学习一下 delve 的主要调试方式及常用调试命令。

阅读更多

实现一个Golang Module Proxy

在前两篇文章(Golang 模块获取包modfetch研读,Golang模块代理goproxy.io源码研读),我们学习了Golang Module Proxy的工作原理以及实现原理。 本文尝试独立实现一个Golang Module …

阅读更多

Golang 模块获取包modfetch研读

自Go 1.11引入Modules以来,其内置命令已集成包查询、下载等功能。 之前专门写过一篇Golang Modules的文章,介绍了Module的使用方式。 如一个Module工程,使用命令构建时会自动获取依赖,如:

阅读更多

Golang 优雅的终止一个服务

采用常规方式启动一个 Golang http 服务时,若服务被意外终止或中断,即未等待服务对现有请求连接处理并正常返回且亦未对服务停止前作一些必要的处理工作,这样即会造成服务硬终止。这种方式不是很优雅。 参看如下代码,该 http 服务请求 …

阅读更多

LeetCode 55 跳跃游戏

1 题目描述 给定一个非负整数数组,您初始位于数组的第一个位置。 数组中的每个元素,代表您在该位置可以跳跃的最大长度。 请判断您能否抵达数组的最后一个位置。

阅读更多

LeetCode 946 校验栈序列

1 题目描述 给定两个序列pushed与popped,每个序列内的值均是不同的。对于一个空的栈,当前仅当其是有效的push与pop操作序列时返回true。 例子1: 输入:pushed = [1,2,3,4,5], popped = …

阅读更多

LeetCode 807 求保持城市现有天际线的最大增高

1 题目描述 在二维数组grid中,每个值grid[i][j]代表位于此的建筑物高度。我们允许对其中的任意建筑物增长不等的高度。高度0仍为一个有效的建筑物。 增高后的建筑群,从其四个方向来看,必须与之前建筑群的天际线保持一致。城市天际线是从 …

阅读更多