-
GoLang与Java各自生成grpc代码流程介绍
目录1.背景2.go生成grpc代码2.1安装2.2安装对应插件3.java生成grpc代码3.1idea安装protobuf插件3.2创建maven项目3.3生成grpc代码1.背景由于公...目录1.背景2.go生成grpc代码2.1 安装2.2 安装对应插件3.Java生成grpc代码3.1 idea安装protobuf插件3.2 创建maven项目3.3 生成grpc代码1.背景由于公司的
Golang error使用场景介绍
目录前言error调用栈前言在Go的编程中,error的使用场景数不胜数,主要就是用来处理各种异常情况.长久以来,我的使用方式都是这样的:err:=errors.New(fail)ifer...目录前言error调用栈前言在Go的编程中, error的使用场景数不胜数, 主要就是用来处理各种异常情况.长久以来, 我的使用方式都是这样的:err := errors.New("fail")if err
一文带你了解Golang中的并发性
目录什么是并发性,为什么它很重要并发性与平行性Goroutines,theworkerMortysChannels,thegreenportal总结并发是一个很酷的话题,一旦你掌握了它,就...目录什么是并发性,为什么它很重要并发性与平行性Goroutines, the worker MortysChannels, the green portal总结并发是一个很酷的话题,一旦你掌握了它,就会成为
十个Golang开发中应该避免的错误总结
目录不检查错误必要时不使用指针没有正确使用channel不释放资源没有使用正确的数据结构错误地使用循环变量不处理竞赛条件没有使用正确的类型不使用Go的标准库没有有效地使用interface没有有效利用...目录不检查错误必要时不使用指针没有正确使用channel不释放资源没有使用正确的数据结构错误地使用循环变量不处理竞赛条件没有使用正确的类型不使用Go的标准库没有有效地使用interface没有有
Golang使用http协议实现心跳检测程序过程详解
目录需求说明程序实现Postman测试Go客户端测试Go单元测试本文介绍如何使用Golang实现心跳程序。需求说明实现心跳程序,其他应用可以简单集成。客户端程序通过HTTP协议进行检测,返回当前程序状...目录需求说明程序实现Postman测试Go客户端测试Go单元测试本文介绍如何使用golang实现心跳程序。需求说明实现心跳程序,其他应用可以简单集成。客户端程序通过HTTP协议进行检测,返回当前
Go Struct结构体的具体实现
目录什么是结构体1.基本实例化(方法1)2.new实例化(方法2)3.键值对初始化(方法3结构体能够使用指针就使用指针)结构体方法和接收者encoding-json包1.struct与jso...目录什么是结构体1. 基本实例化(方法1)2. new实例化(方法2)3. 键值对初始化(方法3 结构体能够使用指针就使用指针)结构体方法和接收者encoding-json包1. struct与json2
Golang httptest包测试使用教程
目录测试http服务端处理器httptest.ResponseRecorder测试HTTP客户端使用httptest.Server总结当前首次学习到Golanghttptest包时,着实打动了我。...目录测试http服务端处理器httptest.ResponseRecorder测试HTTP客户端使用 httptest.Server总结当前首次学习到golang httptest包时,着实打动了我
Golang 锁原理的简单实现
目录什么是锁为什么使用锁Golang中的锁1.cas、atomic2.自旋锁(spinlock)3.信号量mutex演进1.互斥锁2.自旋锁3.公平锁什么是锁锁的本质,就是一种资源,是由操...目录什么是锁为什么使用锁golang中的锁1. cas、atomic2. 自旋锁(spinlock)3. 信号量mutex演进1. 互斥锁2. 自旋锁3. 公平锁什么是锁锁的本质,就是一种资源,是由操作系统
一文带你了解Go语言中锁的实现
目录前言MutexLocklockSlowUnlockUnlockSlow其他关键函数RWMutexLock()UnLock()RLock()UnRLock()前言此文为学习go锁和读写锁的总结文档,...目录前言MutexLocklockSlowUnlockUnlockSlow其他关键函数RWMutexLock()UnLock()RLock()UnRLock()前言此文为学习go锁和读写锁的总结
Golang实现单链表的示例代码
目录1.定义节点2.IsEmpty():3.Length():4.AddFromHead():5.AddFromTail():6.Insert()7.DeleteHead()8.Del...目录1. 定义节点2. IsEmpty():3. Length():4. AddFromHead():5. AddFromTail():6. Insert()7. DeleteHead()8. Deleteww
Golang中sync.Mutex的源码分析
目录Mutex结构常量Locker接口加锁LockLock()lockSlow()解锁UnlockUnlockunlockSlowMutex结构typeMutexstruct{stateint...目录Mutex结构常量Locker接口加锁LockLock()lockSlow()解锁UnlockUnlockunlockSlowMutex结构type Mutex struct {state int3
Go并发之RWMutex的源码解析详解
目录使用场景源码解析RWMutex结构体Lock()方法Unlock()方法RLock()方法RUnlock()方法RWMutex是一个支持并行读串行写的读写锁。RWMutex具有写操作优先的特点,写...目录使用场景源码解析RWMutex结构体Lock()方法Unlock()方法RLock()方法RUnlock()方法RWMutex是一个支持并行读串行写的读写锁。RWMutex具有写操作优先的特
Go语言中内存管理逃逸分析详解
目录1.前言2.逃逸策略3.逃逸场景3.1指针逃逸3.2栈空间不足逃逸3.3动态类型逃逸3.4闭包引用对象逃逸4.逃逸总结5.注意事项1.前言所谓的逃逸分析(Escapeanaly...目录1. 前言2. 逃逸策略3. 逃逸场景3.1 指针逃逸3.2 栈空间不足逃逸3.3 动态类型逃逸3.4 闭包引用对象逃逸4.逃逸总结5. 注意事项1. 前言所谓的逃逸分析(Escape analysis)是指由
GoLang context包的使用方法介绍
目录背景简介主要方法获得顶级上下文当前协程上下文的操作创建下级协程的Context场景示例背景在父子协程协作过程中,父协程需要给子协程传递信息,子协程依据父协程传递的信息来决定自己的操作.这种需求...目录背景简介主要方法获得顶级上下文当前协程上下文的操作创建下级协程的Context场景示例背景在父子协程协作过程中, 父协程需要给子协程传递信息, 子协程依据父协程传递的信息来决定自己的操作.这种需
Golang使用反射的动态方法调用详解
Go是一种静态类型的语言,提供了大量的安全性和性能。静态类型的好处之一是,编译器可以在编译时捕获错误,防止在运行时发生。在Go中,方法是用语法func(receiverNamereceiverTyp...Go是一种静态类型的语言,提供了大量的安全性和性能。静态类型的好处之一是,编译器可以在编译时捕获错误,防止在运行时发生。在Go中,方法是用语法func(receiverName receiverT
浅谈Go语言不提供隐式数字转换的原因
什么是隐式转换在C语言中,隐式数字转换是指在某些情况下,编译器会自动将一个数据类型转换为另一个数据类型,而不需要明确地进行类型转换操作。以下是一些常见的隐式数字转换规则:当一个整数类型和一个浮点数...什么是隐式转换在 C 语言中,隐式数字转换是指在某些情况下,编译器会自动将一个数据类型转换为另一个数据类型,而不需要明确地进行类型转换操作。以下是一些常见的隐式数字转换规则:当一个整数类型和一个浮点
一文带你了解Golang中的WaitGroups
目录什么是WaitGroups如何使用WaitGroups为什么使用WaitGroups而不是channel需要注意的一件事总结什么是WaitGroupsWaitGroups是同步你的goroutin...目录什么是WaitGroups如何使用WaitGroups为什么使用WaitGroups而不是channel需要注意的一件事总结什么是WaitGroupsWaitGroups是同步你的gorou
Go json反序列化“null“的问题解决
目录实验其他测试有这么一段代码,可以先看一下有没有什么问题,作用是输入一段json字符串,反序列化成map,然后将另一个inputMap的内容,merge进这个mapfuncmergeContent...目录实验其他测试有这么一段代码,可以先看一下有没有什么问题,作用是输入一段json字符串,反序列化成map,然后将另一个inputMap的内容,merge进这个mapfunc mergeConte
go并发利器sync.Once使用示例详解
目录1.简介2.基本使用2.1基本定义2.2使用方式2.3使用例子3.原理4.使用注意事项4.1不能将sync.Once作为函数局部变量4.2不能在once.Do中再次调用once....目录1. 简介2. 基本使用2.1 基本定义2.2 使用方式2.3 使用例子3. 原理4. 使用注意事项4.1 不能将sync.Once作为函数局部变量4.2 不能在once.Do中再次调用once.Do4.3
Golang判断两个链表是否相交的方法详解
目录算法题:判断2个链表相交方法一:map方法二:首尾相接法算法题:判断2个链表相交面试中可能会问到的算法题,今天总结一下方法一:map步骤:1.遍历list1,以节点为key放入map中2.遍历li...目录算法题:判断2个链表相交方法一:map方法二:首尾相接法算法题:判断2个链表相交面试中可能会问到的算法题,今天总结一下方法一:map步骤:1.遍历list1,以节点为key放入map中2.遍
一文带你学会Go select语句轻松实现高效并发
目录前言select介绍什么是select为什么需要selectselect基础语法基本用法一些使用select与channel结合的场景实现超时控制实现多任务并发控制监听多个通道的消...目录前言select 介绍什么是 select为什么需要 selectselect 基础语法基本用法一些使用 select 与 channel 结合的场景实现超时控制实现多任务并发控制监听多个通道的消息使用 d
深入浅出Golang中的sync.Pool
目录一、原理分析1.1结构依赖关系图1.2用图让代码说话1.3Put过程分析二、学习收获2.1如何自己实现一个无锁队列学习到的内容:1.一个64位的int类型值,充分利用高32位和低32位,进...目录一、原理分析1.1 结构依赖关系图1.2 用图让代码说话1.3 Put过程分析二、学习收获2.1 如何自己实现一个无锁队列学习到的内容:1.一个64位的int类型值,充分利用高32位和低32位,进行
Windows下升级go版本过程详解
目录安装命令行工具choco安装安装首次安装需要在官网下载msi安装包,安装完后golang会自动设置环境变量。在命令行可以使用goversion查看版本信息。后续如果需要升级go...目录安装命令行工具 choco 安装安装首次安装需要在官网下载 msi 安装包,安装完后 golang 会自动设置环境变量。在命令行可以使用 go version 查看版本信息。后续如果需要升级 go 版本,怎么做
Golang单元测试中的技巧分享
目录打桩测试代码注意事项压测代码使用测试覆盖率表格驱动测试打桩测试当我们在编写单元测试的时候,有时我们非常想mock掉其中一个方法,但是这个方法又没有接口去定义和实现(无法用github.com/...目录打桩测试代码注意事项压测代码使用测试覆盖率表格驱动测试打桩测试当我们在编写单元测试的时候,有时我们非常想 mock 掉其中一个方法,但是这个方法又没有接口去定义和实现(无法用 github.co
Go语言struct要使用 tags的原因解析
目录structtags的使用使用反引号避免使用空格避免重复使用标准化的tag名称多个tag值structtags的原理structtags的优势常用的structtags在...目录struct tags 的使用使用反引号避免使用空格避免重复使用标准化的 tag 名称多个 tag 值struct tags 的原理struct tags 的优势常用的 struct tags在 Go 语言中,str