深入理解Golang之context(转载)
context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 1. 前言 这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用cont… 阅读更多 »深入理解Golang之context(转载)
context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 1. 前言 这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用cont… 阅读更多 »深入理解Golang之context(转载)
1. 概述 在golang中,reflect是一个比较高级的话题,本文将尽可能简单而又清楚的介绍相关内容。 本文将从如下几个方面进行阐述: 什么是reflection ? 如何检查一个变量var 并获得其真实类型 golang中的reflect包 reflect.Type 和 reflect.Value reflect.Kind… 阅读更多 »Golang中reflect反射
1. 内部结构 1.1. 数组 Array 先说一下数组, 的确在 Go 语言中, 因为 slice 的存在, 使得 array 的出场率不高。但想要很好的理解 slice, 还是要先要了解 array. Go 语言的数组和其他语言一样, 没有什么特别的地方, 就是一段以元素类型(如int)为单位的连续内存空间。数组创建时, 被… 阅读更多 »Golang数组和切片区别及切片扩容
1. 引言 笔者从今天开始正式学习golang了,肯定要跟着谷歌的节奏来,毕竟是code领域的风向标。下面谈一下入门go语言首先要弄明白的一个知识点,虽然不是太大,但是在它在学习这门语言的路上扮演着十分重要的作用。 学习go语言,入门过得都知道,go语言是以包为单位来复用代码块功能的,一般一个文件夹对应一个包,并且我们也知道,g… 阅读更多 »Go语言第三方包依赖的管理方式(转载)
最近使用 GRPC 发现一个设计特别好的地方,非常值得借鉴。 我们在日常写方法的时候,希望给某个字段设置一个默认值,不需要定制化的场景就不传这个参数,但是 Golang 却没有提供像 PHP、Python 这种动态语言设置方法参数默认值的能力。 低阶玩家应对默认值问题 以一个购物车举例。比如我有下面这样一个购物车的结构体,其中 … 阅读更多 »Golang技巧之默认值的设置(转载)
1. logrus Logrus is a structured logger for Golang 1.1. 获取logrus go get github.com/sirupsen/logrus 注意: 作者最近将这个包转移到了sirupsen/logrus里面,但是之前的名字是Sirupsen/logrus,所以在使用其他h… 阅读更多 »Golang Logrus的使用(转载)
从https://github.com/protocolbuffers/protobuf/releases下载protoc(如:Windows则下载protoc-3.6.1-win32.zip)。protoc命令位于bin目录下。 cd ~ && wget https://github.com/protocolb… 阅读更多 »Go使用protobuf(转载)