Category: 计算机

goproxy.io是一款很好用的Golang Module Proxy,解决了国内用户无法直接下载Golang模块依赖的问题。 本文准备研读一下其开源代码github.com/goproxyio/goproxy,了解下其实现原理。 goproxy工程的主要目录结构如下: goproxy ├ build │ └ gen 阅读全文

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

采用常规方式启动一个Golang http服务时,若服务被意外终止或中断,即未等待服务对现有请求连接处理并正常返回且亦未对服务停止前作一些必要的处理工作,这样即会造成服务硬终止。这种方式不是很优雅。 参看如下代码,该http服务请求路径为根路径,请求该路径,其会在2s后返回hello。 var addr = flag. 阅读全文

1 题目描述 给定一个非负整数数组,您初始位于数组的第一个位置。 数组中的每个元素,代表您在该位置可以跳跃的最大长度。 请判断您能否抵达数组的最后一个位置。 例子1: 输入:[2,3,1,1,4] 输出:true 释义:从位置0跳一步到位置1,然后跳3步抵达最终位置。 例子2: 输入:[3,2,1,0,4] 输出:fa 阅读全文

1 题目描述 请设计对双端队列的实现。 实现需支持如下操作: a)MyCircularDeque(k): 构造器,设置双端队列的容量 b)insertFront(): 在头部插入元素,若操作成功则返回true c)insertLast(): 在尾部插入元素,若操作成功则返回true d)deleteFront(): 删 阅读全文

1 题目描述 给定两个序列pushed与popped,每个序列内的值均是不同的。对于一个空的栈,当前仅当其是有效的push与pop操作序列时返回true。 例子1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 释义: 我们可能做如下操作: push(1), 阅读全文

1 2 3 12