网站首页 成长录 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。

Mac 上 Golang 在 VS Code 调试器 delve 安装
2020-06-09 18:48 admin 调试器Mac

1、首先确保有适当的编译工具链,如果没有,按照如下命令进行安装:**xcode-select--install**2、接下来可以通过如下指令直接安装delve调试器即可进行golang调试了:**$goget-ugithub.com/go-delve/delve/cmd/dlv**
阅读全文

golang 基础(11)函数参数
2020-06-09 18:48 admin golang函数参数

square-gopher.png函数中的参数定义函数可以没有任何参数就像main函数__funcmain(){}定义函数的参数时和其他语言没有什么不同,指定参数名称和参数类型__funcsayMessage(msgstring){//body}如果参数类型一致我们可以省略greeting后面指定类型__funcsay...
阅读全文

golang 基础(F)函数的参数
2020-06-09 18:48 admin golang函数

square-gopher.png函数函数是由函数名,参数,返回值和函数体所组成。__funcadd(a,bint)int{}定义函数并且复习一下之前的switch语句__funceval(a,bint,opstring)int{switchop{case"+":returna+bcase"-":returna-bca...
阅读全文

Go 的并发模式(中)(更新中)
2020-06-09 18:48 admin go并发

square-gopher.png在go语言中为并发提供了许多工具,如下GoroutineChannelsSelectSyncpackage今天我们不去谈论goroutine,这是go语言的核心,准备拿出单独内容跟大家来分享goroutine,而是重点讨论作为CSP基石的channel,既然讨论channel我们就需要...
阅读全文

golang分解http GET字符参数串到map
2020-06-09 18:48 admin golangHTTP

来了一串字符串,类似于httpGET的URL参数串。不知道"net/url"能解这样的串。但是能不能分解?sessionid=22222&token=3333这样的串没试过。其实自己构造个解析也很快的。上代码。__funcuri2map(uristring)(map[string]string,error){m:=ma...
阅读全文

golang 基础(30) WaitGroup
2020-06-09 18:48 admin golangWaitGroup

golang_real.jpggolang中有2种方式同步程序,一种使用channel,另一种使用锁机制。sync.WaitGroup只有3个方法,Add(),Done(),Wait()。其中Done()是Add(-1)的别名。简单的来说,使用Add()添加计数,Done()减掉一个计数,计数不为0,阻塞Wait()的...
阅读全文

为什么遍历 Go map 是无序的?
2020-06-09 18:48 admin gomap

image有的小伙伴没留意过Gomap输出顺序,以为它是稳定的有序的;有的小伙伴知道是无序的,但却不知道为什么?有的却理解错误?今天我们将通过本文,揭开`forrangemap`的“神秘”面纱,看看它内部实现到底是怎么样的,输出顺序到底是怎么样?原文地址:[为什么遍历Gomap是无序的?](https://links....
阅读全文

Go调度器系列(3)图解调度原理
2020-06-09 18:48 admin go调度

如果你已经阅读了前2篇文章:和,你对G、P、M肯定已经不再陌生,我们这篇文章就介绍Go调度器的基本原理,本文总结了12个主要的场景,覆盖了以下内容:1.G的创建和分配。2.P的本地队列和全局队列的负载均衡。3.M如何寻找G。4.M如何从G1切换到G2。5.workstealing,M如何去偷G。6.为何需要自旋线程。7...
阅读全文

Go进阶:反射3定律
2020-06-09 18:48 admin go进阶

各位学习Go语言的朋友,周末好,这次跟大家聊一聊Go语言的一个高级话题:反射。这篇文章是从我过去的学习笔记修改来的,内容主要来自GoBlog的一篇文章《Thelawofreflection》。**这篇文章主要介绍反射和接口的关系,解释内在的关系和原理**。反射来自元编程,指通过类型检查变量本身数据结构的方式,只有部分编...
阅读全文

大堆栈带来的高GC开销的问题
2020-06-09 18:48 admin GC堆栈

当分配的内存量相对较小时,Go垃圾收集器(GC)工作得非常好,但是如果堆大小较大,GC最终可能会使用大量的CPU。在极端情况下,它可能无法跟上。有什么问题?GC的工作是确定哪些内存块可以释放,它通过扫描指向分配的内存的指针来实现这一点。简单地说,如果没有指向分配内存的指针,那么可以释放这个内存。这很有效,但是扫描内存越...
阅读全文

Visual Studio Code搭建Go环境(不定时更新)
2020-06-09 18:48 admin VisualStudio

网上有非常多教程,试了好多不行,所以自己动手搞了个vscode装go的教程,绝对可用。1.安装go*这里选择安装go1.12.5版本*下载地址:*安装过程就不想细说了,安装完会自动配置GOROOT环境变量。>**GOROOT**:Go语言的安装路径。>**GOBIN**:Go的二进制文件存放目录(不设置默认成生的位置%...
阅读全文

[golang] gin mongodb restful api设计: 动态的patch接口
2020-06-09 18:48 admin golangGin

1.什么是Patch?>Patch方法可以用来更新资源的一个组成部分2.什么时候使用Patch?>当你仅需更新资源的某一项,即不完全也不幂等那当我们的模型在数据库中几乎每个字段都可能会遇到改变的时候,难道在patch的时候,或者专门写一个post的接口去一个一个ifelse操作吗,而我们又使用的是静态语言golang,...
阅读全文

深入理解channel:设计+源码
2020-06-09 18:48 admin channel源码

channel是大家在Go中用的最频繁的特性,也是Go最自豪的特性之一,你有没有思考过:*Why:为什么要设计channel?*What:channel是什么样的?*How:channel是如何实现的?这篇文章,就来回答这3个问题。channel解决什么问题?在Golang诞生之前,各编程语言都使用多线程进行编程,但多...
阅读全文

golang 基础(22)WaitGroup
2020-06-09 18:47 admin golangWaitGroup

square-gopher.pngwaitGroup从字面上来看是等待组,好处是主线程的退出或执行需要其之前所有goroutine执行完毕才回到主线程执行,这是保证所有的goroutine都会被执行到···__import("fmt""time""sync")funcdoSomething(millisecstime....
阅读全文

golang 基础(23)channel
2020-06-09 18:47 admin golangchannel

golang_real.jpggoroutine也就是协程间通讯是通过channel来实现的,channel将信息从一个goroutine传递到给另一个gorout。golang_channel.jpg__funcmain(){messages:=make(chanstring)gofunc(){messages<-"...
阅读全文
顶部 底部