golang
文章平均质量分 66
七八月份的太阳
厚积薄发
展开
-
goland 20.1.1小技巧
golang 20.1.1小技巧磨刀不误砍柴工版本号: Year.Major.Minor 2020 1 1在命令行使用goland:使用过vscode的同学也肯定使用过来打开代码仓库code .这个功能goland也支持我们可以通过设置toolbox来打开该功能:在使用goland . 即可打开项目仓库 :在github直接打开项目(需要在浏览器内下载toolbox插件):直接clone项目:插...原创 2020-05-18 17:33:43 · 818 阅读 · 0 评论 -
golang的HashSet
自己实现一个HashSet记录一下import ( "errors" "reflect")type HashSet struct { //数据载体 data map[interface{}]interface{} //数据类型 dataType string //数据数量 count int}/**初始化并指定存储对象的类型*/func NewHashSe...原创 2019-11-03 22:45:04 · 2911 阅读 · 0 评论 -
Golang代理设计模式(十二)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇享元设计模式:https://blog.csdn.net/weixin_40165163/article/details/90760219代理设计模式在代理模式中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有对象的对...原创 2019-06-03 23:16:02 · 6105 阅读 · 0 评论 -
Golang 爬虫学习
完整代码:https://github.com/zhumengyifang/Reptile.git爬虫在目前已经属于很多公司必须的技术了,今天闲着无聊,试试用golang爬一爬。爬取目标:统计博客访问量使用技术:golang 、 goquery、net/http其实爬虫如果简单学学还是蛮简单的,如果不去搞反爬虫的网站的话。。。。如果涉及到爬虫与反爬虫的话这里面的学问还是蛮多的,爬虫...原创 2019-06-09 22:29:01 · 6068 阅读 · 0 评论 -
Golang interface你想了解的这里都有!
Golang interface在了解类型断言之前我们需要新了解一下interface,所以interface算是下一个博客内容的铺垫。什么是interface,它都有什么用处?1.interface type就是一组方法签名的集合。我们使用一个接口来识别一个对象能够进行的操作。这也是我们最常用的方式,不管是在golang这门语言还是其他OOP类型的语言,碰到一个interfac...原创 2019-06-13 23:46:58 · 5464 阅读 · 0 评论 -
Golang 无法下载依赖解决方案 unrecognized import path "golang.org/x/net
golang Modules 依赖管理工具使用:https://blog.csdn.net/weixin_40165163/article/details/90112861Golang 无法下载依赖解决方案今天本来想写一下爬虫程序的,所以就用到了"github.com/PuerkitoBio/goquery"这个框架,但是在项目中使用golang Modules却无法下载还报了以下错误:...原创 2019-06-08 18:02:40 · 21863 阅读 · 1 评论 -
Golang装饰器设计模式(九)
上一篇组合设计模式:https://blog.csdn.net/weixin_40165163/article/details/90734545github:https://github.com/zhumengyifang/GolangDesignPatterns装饰器设计模式wiki百科:装饰器设计模式允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构...原创 2019-06-02 22:07:22 · 7199 阅读 · 0 评论 -
Golang访问者设计模式(二十四)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91128627访问者模式在访问者模式中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类...原创 2019-06-07 19:03:13 · 6101 阅读 · 0 评论 -
Golang 模版设计模式(二十三)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91128342模版设计模式在模版模式中,一个抽象类公开定义了执行它的方法的方式、模版。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行...原创 2019-06-07 16:54:23 · 7020 阅读 · 2 评论 -
Golang策略模式(二十二)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91128083策略模式在策略模式中,一个类的行为或其他算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的...原创 2019-06-07 16:25:57 · 6632 阅读 · 0 评论 -
Golang空对象模式(二十一)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91127768空对象模式在空对象模式中,一个空对象取代nil对象实例的检查,nil对象不是检查空值,而是反应一个不做任何动作的关系。这样的nil对象也...原创 2019-06-07 15:48:41 · 7821 阅读 · 0 评论 -
Golang状态设计模式(二十)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91127487状态模式在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为模式。在状态模式中,我们创建表示各种状态的对象和一个行...原创 2019-06-07 15:20:44 · 7210 阅读 · 0 评论 -
Golang观察者设计模式(十九)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91052749观察者设计模式当对象间存在一对多关系时,则使用观察者模式。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。...原创 2019-06-07 14:44:12 · 5994 阅读 · 0 评论 -
Golang组合设计模式(八)
上一篇桥接设计模式:https://blog.csdn.net/weixin_40165163/article/details/90731470github:https://github.com/zhumengyifang/GolangDesignPatterns组合设计模式wiki百科: 组合模式,又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合...原创 2019-06-02 15:45:54 · 6228 阅读 · 0 评论 -
Golang 过滤器设计模式(六)
上一篇:适配器设计模式https://blog.csdn.net/weixin_40165163/article/details/90716357github:https://github.com/zhumengyifang/GolangDesignPatterns过滤器设计模式wiki百科:过滤器设计模式或标准模式是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通...原创 2019-06-01 22:47:32 · 7323 阅读 · 0 评论 -
Golang 类型断言
需要的知识 interface:https://blog.csdn.net/weixin_40165163/article/details/91905100类型断言x.(T)检查x的动态类型是否是T,其中x必须是接口值。直接使用:func main() { var x interface{} x = 100 value1, ok := x.(int) if ok { ...原创 2019-06-14 23:25:35 · 6597 阅读 · 1 评论 -
Golang外观设计模式(十)
上一篇组合设计模式:https://blog.csdn.net/weixin_40165163/article/details/90740155github:https://github.com/zhumengyifang/GolangDesignPatterns外观设计模式wiki百科:外观设计模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属...原创 2019-06-03 22:01:19 · 5978 阅读 · 0 评论 -
golang NSQ 使用
CentOSNSQ部署https://blog.csdn.net/weixin_40165163/article/details/94351035NSQ消息队列的使用需要的依赖: "github.com/nsqio/go-nsq"通过命令查看开放的端口:消息发布:4150消息接收:4161Web查看管理界面 :4171首先创建Topic 和Channel...原创 2019-07-05 23:35:08 · 3252 阅读 · 0 评论 -
Golang 闭包实现原理
闭包是由函数及其相关引用环境组合而成的实体(即:闭包=函数+引用环境)。在解读闭包原理之前我们新看一下闭包的效果是什么样的:package mainimport "fmt"func main() { f := f(0) fmt.Println(f()) fmt.Println(f()) fmt.Println(f())}func f(i int) func() in...原创 2019-07-14 23:16:53 · 3708 阅读 · 1 评论 -
Golang为什么能返回多个参数?其他的语言不能做到吗?
今天的学习由两个问题进入:第一个问题Golang是怎么做到可以返回多个参数的?第二个问题是为什么其他的语言不可以返回多个参数?那么我们现在直接进入第一个问题,新写一些简单明了的代码:package mainfunc main() { myFunction(1, 2)}func myFunction(a int, b int) (int, int) { return...原创 2019-07-14 15:00:53 · 3079 阅读 · 0 评论 -
Golang try catch与错误处理
Golang try catch虽然在使用Golang的时候发现没有try catch这种错误处理机制但是想一想golang作为一门优雅的语言,似乎也是情理之中。因为在java中 throws在函数签名中有一个关键字,旨在使异常流程比较简洁,但是一旦预期的异常数量增加,就很难准确捕捉到具体异常所在。虽然golang中并不提供try catch的写法但是零值概念啊等等一些设计,在加上在pan...原创 2019-06-12 23:38:20 · 35472 阅读 · 0 评论 -
Golang解释器设计模式(十五)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇命令模式:https://blog.csdn.net/weixin_40165163/article/details/90814345解释器模式解释器模式提供了评估语言的愈发或表达式的方式,它属于行为型模式,这种模式实现了一个表达式接口,该接口解释一个特定的上下...原创 2019-06-05 23:14:00 · 6179 阅读 · 0 评论 -
Golang命令设计模式(十四)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇责任链设计模式:https://blog.csdn.net/weixin_40165163/article/details/90814115命令模式命令模式是一种数据驱动的设计模式,它属于行为模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处...原创 2019-06-04 22:28:26 · 6315 阅读 · 0 评论 -
Golang责任链设计模式(十三)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇代理设计模式:https://blog.csdn.net/weixin_40165163/article/details/90760219责任链模式顾名思义,责任链模式为请求创建了一个接受者对象的链,这种模式给予请求的类型,对请求的发送者和接受者进行解偶。这种类...原创 2019-06-04 22:10:31 · 6546 阅读 · 0 评论 -
Golang defer解读
deferdefer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。defer语句通常用于一些成对操作的场景:打开链接/关闭链接 加锁/释放锁 打开文件/关闭文件defer在一些需要回收资源的场景非常有用,可以很方便地在函数结束前做一些清理操作。在打开资源语句的下一行,直接一句def...转载 2019-06-16 20:03:26 · 5786 阅读 · 0 评论 -
Golang GC概述
垃圾回收垃圾回收器一直是被诟病最多,也是整个运行中改进最努力的部分。所有变化都是为了缩短STW时间,提高程序实时性。大事记:2014年6月 1.3并发清理 2015年8月 1.5三色并发标记上述并发是指垃圾回收和用户逻辑并发执行。Golang GC按照官方的说法,Golang GC的基本特征是“非分代、非紧缩、写屏障、并发标记清理”。The GC runs concu...原创 2019-06-19 23:38:55 · 4164 阅读 · 0 评论 -
Golang享元设计模式(十一)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇外观设计模式:https://blog.csdn.net/weixin_40165163/article/details/90759617享元设计模式享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象...原创 2019-06-03 22:41:57 · 6034 阅读 · 0 评论 -
Golang备忘录设计模式(十八)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/91050720备忘录设计模式备忘录模式保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为模式。介绍意图:在不破坏封装性的前提...原创 2019-06-06 23:07:31 · 5940 阅读 · 0 评论 -
Golang中介者设计模式(十七)
github:https://github.com/zhumengyifang/GolangDesignPatterns上一篇:https://blog.csdn.net/weixin_40165163/article/details/90968990中介者模式中介者模式是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持送耦合,是代码...原创 2019-06-06 22:53:57 · 6140 阅读 · 0 评论 -
golang Sync.Once
Sync.Once结构:type Once struct { m Mutex done uint32}从结构中我们就可以猜出其实现线程安全是通过Mutex来做到的源码:func (o *Once) Do(f func()) { if atomic.LoadUint32(&o.done) == 1 { return } // Slow-...原创 2019-05-15 23:07:46 · 6020 阅读 · 0 评论 -
golang操作二叉树的插入查询遍历和打印(代码)
关于二叉树详细介绍请移步:https://blog.csdn.net/weixin_40165163/article/details/83826223package mainimport ( "fmt" "strconv" "strings")type Node struct { Item int LeftChild *Node RightChild *N...原创 2019-05-20 23:24:48 · 6119 阅读 · 0 评论 -
使用vim编写golang
生命在于折腾,技术在于折腾!并不推荐所有人这么玩毕竟golang的IDE足够优秀(visual studio code 、goland),但是如果你喜欢折腾!像我一样,那我们就开始吧!新说说使用vim代码编辑的好处,使用vim那自然问题多多,不过遇到的问题多了,解决问题的能力自然就变强了,而且很多原来我们需要知道的技巧都已经被强大的IDE自动化掉了,听过这么一个故事 使用vim的5年以后最...原创 2019-05-08 09:53:01 · 7637 阅读 · 0 评论 -
Go Channel(三)
接Go Channel(二):https://blog.csdn.net/weixin_40165163/article/details/90053005Timer和Ticker关于时间的两个Channel。timer和tickertimer是一个定时器,代表未来的一个单一事件,你可以告诉timer你要等待多长时间,它提供一个Channel,在将来的那个时间Channel提供了一个时间...原创 2019-05-10 15:22:01 · 5612 阅读 · 0 评论 -
Go Channel(二)
接上篇:https://blog.csdn.net/weixin_40165163/article/details/90049538blocking缺省情况下,发送和接收会一直阻塞着,直到另一方准备好。这种方式可以用来在gororutine中进行同步,而不必使用显示的锁或者条件变量。如官方的例子中:x, y := <-c, <-c这句会一直等待计算结果发送到c...原创 2019-05-10 15:21:49 · 5745 阅读 · 0 评论 -
golang 使用Sync.WaitGroup来解决等待问题
面对goroutine我们都需要等待它完成交给它的事情,等待它计算完成或是执行完毕,所以不得不在程序需要等待的地方使用time.Sleep()来睡眠一段时间,等待其他goroytine执行完毕,下面的代码打印1到100的for循环可以在很快的时间内运行完毕,但是我们必须添加time.Sleep()来等待其打印完毕,如果我们不等待仿佛什么也没有发生一样。。。。。这肯定不是我们想要的!fu...原创 2019-05-14 23:11:56 · 7302 阅读 · 0 评论 -
Go Channel(一)
Channel是Go中的一个核心类型,大部分的人称之为管道,通过它并发核心单元就可以发送或者接收数据进行通讯。<-这个就是使用Channel的标识,箭头的指向就是数据的流向package mainimport "fmt"func main() { ch := make(chan int)//和map和slice数据的类型一样channel需要新创建在使用 go fun...原创 2019-05-09 23:37:42 · 6558 阅读 · 0 评论 -
go中的G.M.P以及Goroutine、Scheduler
go中的G.M.P以及Goroutine、Scheduler并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并行)编程肯定是值得开发者去探究的,而Go语言中的并发(并行)编程是经由goroutine实现的,goroutine是golang最重要的特性之一,具有使用成本低、消耗资源低、能...转载 2019-05-09 15:46:32 · 9053 阅读 · 0 评论 -
golang+linux+docker+mongdb连接过程(二)
接上篇文章:https://mp.csdn.net/postedit/89577356上篇说到mongodb已经可以在本地访问接下来使用mongodb-compass进行远程连接mongodb,macOS可使用命令下载:brew caskinstall mongodb-compass发现无法连接成功,关闭防火墙:sudo systemctl stop firewalld...原创 2019-04-26 22:41:15 · 5645 阅读 · 0 评论 -
golang+linux+docker+mongdb连接过程(一)
golang简介:Go最早并不是一个Google的正式项目,而是作为一个"20%"的项目出现的,直到2009年才以开源的方式面向大众,目前go team有稳定的发布周期,大约半年一个新的版本.Go语言的出身可以说非常豪华,最早对go语言的讨论是由罗伯特·格瑞史莫、罗伯·派克和肯·汤普逊发起的,主要是为了解决c++中出现的问题而发起的项目。肯·汤普逊是c语言和unix的发明者,罗伯特·格瑞史...原创 2019-04-26 22:08:14 · 5977 阅读 · 0 评论 -
golang 指针
C语言指针:https://blog.csdn.net/weixin_40165163/article/details/84338004学习golang的时候发现没有引用类型可以用,会有一些代码写的很丑!所以这里学习了解一下C语言和golang指针之间的区别首先是引发问题的代码:package mainimport "fmt"type user struct { nam...原创 2019-04-17 21:55:45 · 6134 阅读 · 0 评论