logo头像

待到风起时,扬帆济沧海

Golang

Go-context详解

背景golang在1.6.2的时候还没有自己的context,在1.7的版本中就把golang.org/x/net/context包被加入到了官方的库中。golang 的 Context包,是专门用来简化对于处理单个请求的多个goro...

Go-深入解析Slice底层实现

原文地址:https://halfrost.com/go_slice/ 切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开发者可以更加方便的使一个数据结构可以自动增加和减...

Go-log日志

日志使用o语言为我们提供了标准的log包,来跟踪日志的记录。下面我们看看日志包log的使用 1234func main() { log.Println("这是百度地址:","http://www...

Go-错误(error)处理方案

error接口error其实是一个接口,内置的,看下他的定义12345// The error built-in interface type is the conventional interface for// represent...

Go-字符串高效拼

+号拼接这种拼接最简单,也最容易被我们使用,因为它是不限编程语言的,比如Go语言有,Java也有,它们是+号运算符,在运行时计算的。现在演示下这种拼接的代码,虽然比较简单。1234567func StringPlus() string...

protobuf

grpc与protobufProtobuf 协议详解各语言类型.proto TypeC++ TypeJava TypePython Type[2]Go TypeRuby TypeC# TypePHP TypeDart Typedoub...

Go 中 defer 与 return 之间的迷之执行顺序

偶然间发现了一个有意思的地方:在使用defer时,匿名返回值的函数和命名返回值的函数的返回结果是不一样的。具体见如下代码:12345678910111213141516171819202122232425262728293031323...

Golang sync 包的相关使用方法

为什么需要锁在并发的情况下,多个线程或协程同时去修改一个变量,可能会出现如下情况:1234567891011121314151617181920212223242526package mainimport ( "fmt" ...

go modules 详解

go mod的介绍我们以前用 go get 获取依赖其实是有潜在危险的,因为我们不确定最新版依赖是否会破坏掉我们项目对依赖包的使用方式,即当前项目可能会出现不兼容最新依赖包的问题。随着 go1.11 的发布,go 给我们带来了 mod...