Golang

Golang的Dlv调试

1. dlv的安装 delve,简称dlv是go语言的最常用的调试器,获取dlv的操作命令如下: #下载dlv go get -u github.com/derekparker/delve/cmd/dlv #安装dlv go install github.com/go-delve/delve/cmd/dlv #验证dlv安装 d… 阅读更多 »Golang的Dlv调试

Golang Mock使用入门

1. 概述   前面介绍了golang的一般单元测试,以及如何使用vscode进行高效的go单元测试开发。同时也说过一般单元测试重点在于cpu和内存类型的测试,而对io类型的测试是比较敏感的。那么针对这类测试就没法做单元测试了吗?有的,肯定是有的,这就是mock技术。   mock测试不但… 阅读更多 »Golang Mock使用入门

Golang Channel发送和接收

Go中Channel发送和接收操作指南 1. 前言 先来看一道面试题: 对已经关闭的 chan 进行读写,会怎么样?为什么? 在golang中channel属于较为核心的一个功能,尤其在go协程中,channel功能尤为重要;如果多个任务之间需要通信,可能就要用到通道(channel)。 2. Channel的定义 声明并初始化… 阅读更多 »Golang Channel发送和接收

Go Mod引用私有库

在Go 1.11之后推出了依赖包管理工具Go Modules之后,Go项目可以在 GOPATH 之外的位置创建,当项目中仅使用了公有库作为依赖时,使用 go get 或 go mod 更新依赖一切如初,没有任何问题。 由于Go Modules默认使用代理去更新依赖,所以当使用了私有仓库作为依赖时,Go更新依赖的相关命令将不再可用… 阅读更多 »Go Mod引用私有库

Golang使用go build 进行条件编译

当我们编写的go代码依赖特定平台或者cpu架构的时候,我们需要给出不同的实现 C语言有预处理器,可以通过宏或者#define包含特定平台指定的代码进行编译 但是Go没有预处理器,他是通过 go/build包 里定义的tags和命名约定来让Go的包可以管理不同平台的代码 这篇文章将讲述Go的条件编译系统是如何实现的,并且通过实例来… 阅读更多 »Golang使用go build 进行条件编译