Go官方工具链用法详解
Go官方工具链 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具链安装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序安装Go官方工具链时,安装程序很可能已经自动地将此配
Go语言--切片(Slice)详解
说明: Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加
golang交叉编译详细
1、环境变量对照表 golang交叉编译环境变量对照表 GOOS | GOARCH | OS VERSION ---|---|--- linux | 386 / amd64 / arm | >
Go 泛型和非泛型代码详解
1. 开启泛型 在 Go1.17 版本中,可以通过: export GOFLAGS="-gcflags=-G=3" 或者在编译运行程序时加上: go run -gcflags=-G=3 mai
Go语言基础语法之结构体及方法详解
结构体类型可以用来保存不同类型的数据,也可以通过方法的形式来声明它的行为。本文将介绍go语言中的结构体和方法,以及“继承”的实现方法。 结构体类型 结构体类型(struct)在go语言中具有重要地位,它是实现go语言
Go并发编程实现数据竞争
1.前言 虽然在 go 中,并发编程十分简单, 只需要使用 go func() 就能启动一个 goroutine 去做一些事情,但是正是由于这种简单我们要十分当心,不然很容易出现一些莫名其妙的 bug 或者是你的服务
golang进行简单权限认证的实现
使用JWT进行认证 JSON Web Tokens (JWT) are a more modern approach to authentication. As the web moves to a gre
Go语言中CGO的使用实践
部门产品业务功能采用Golang开发,但是有些功能是用c写的,比如说net-snmp,bfd协议等等,像这些如果使用GO语言重编的话,既
go语言yaml转map、map遍历的实现
yaml文件内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snapshot spec:
go语言实现mqtt协议的实践
一、什么是MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构
一些关于Go程序错误处理的相关建议
前言 Go的错误处理这块是日常被大家吐槽较多的地方,我在工作中也观察到一些现象,比较严重的是在各层级的逻辑代码中对错误的处理有些重复。 比如,有人写代码就会在每一层都判断错误并记录日志,从代码层面看,貌似很严谨,但是
详解如何在Go服务中做链路追踪
使用 Go 语言开发微服务的时候,需要追踪每一个请求的访问链路,这块在 Go 中目前没有很好的解决方案。 在 Java 中解决这个问题比较简单,可以使用 MDC,在一个进程内共享一个请求的 RequestId。 在
谈论Go 什么时候会触发 GC问题
在早期经常遭到唾弃的就是在垃圾回收(下称:GC)机制中 STW(Stop-The-World)的时间过长。那么这个时候,我们又会好奇一点,作为 STW 的起始,Go 语言中什么时候才会触发 GC 呢? 1、什么是 GC
Go语言变量与基础数据类型详情
一、基础介绍 Go 是静态(编译型)语言,是区别于解释型语言的弱类型语言(静态:类型固定,强类型:不同类型不允许直接运算) 例如 python 就是动态强类型语言 1、Go 的特性 跨平台的编译型语言,交叉编译
Go语言中的逃逸分析究竟是什么?
1、逃逸分析介绍 学计算机的同学都知道,在编译原理中,分析指针动态范围的方法称之为逃逸分析。通俗来讲,当一个对象的指针被多个方法或线程引用时,我们称这个指针发生了“逃逸”。 Go语言的逃逸分析是编译器执行静态代