在入坑第一式中,我们提到过函数。当时以main函数为例进行的讲解。 那会是为了demo需要,拿来main就用。在此节中,开始详细讲解函数。 函数,字方法(method),又名子例程(sub-routine),别名过程(procedure)。在不同的语言种,有不同的叫法。 但本质都是一样的,都是一组执行不同任务的语句。别的语言暂且不提,下面所说的都是Golang的家规。 我要晨读
Golang 在异步处理上有着上佳的表现。因为 goroutines 和 channels 是非常容易使用且有效的异步处理手段。下面我们一起来看一看 Golang 的简易任务队列. 我要晨读
事后总觉得应该针对这个问题写点什么? 于是就构思了这样一篇文章,旨在循着这位网友的思路通过一些例子来step by step演示如何分析go schedule。如果您对Goroutine的调度完全不了解,那么请先读一读这篇前导文 《也谈goroutine调度器》。 我要晨读
如何使用go-torch,帮助我们进行性能调优?让我们来看看如何使用go-torch,其生成的火焰图。 我要晨读
Golang 是什么?为何选择 Golang? 我要晨读
深入浅出lice操作——切片的追加、删除、插入等… 我要晨读
给你第一百个学习go的理由,上个月,Go 语言的创始人之一,Unix 老牌黑客罗勃·派克(RobPike)在新文章中提到,Go 语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语言,中国程序员对 Go 语言的热爱完全超出了他们的想象… 我要晨读
大部分新手(比如文章作者)看完golang圣经之后不知道该做些什么好,那不如就来做一个资源下载小程序吧。这里用一个视频网站作为示范,来编写一个小小的资源下载小程序… 我要晨读
写代码什么最重要?当然是心情最重要!只要嗨起来,你的code就能飞起来!Go 在全世界拥有大约 100 万的 Go 开发者,在 GitHub 的 2017 年最流行编程语言榜上排第九,超过了 C!还不来了解一下Go?这里给你们推荐一篇Go入门文章,将开始你真正的Golang占坑,呸,Golang入坑之旅。 我要晨读
我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的goroutine,并且它们都是跑在同一个内核线程之上的时候,就需要一个调度器来维护这些goroutine,确保所有的goroutine都使用cpu,并且是尽可能公平的使用cpu资源。 我要晨读
Go语言的官方package里面提供了"container/heap",在该package里面定义了Heap(堆)这一数据结构的使用接口。只要自定义的数据类型实现了标准接口,可以很方便的对自定义的数据类型在堆中进行排序了。 我要晨读
Docker 实战:将 Go语言 工程部署到 docker。本文一步步讲解 go语言实现的基本http服务部署到 docker ,并启动运行,讲解 dockerfile 文件的结构。 我要晨读
Go 终极指南:编写一个 Go 工具。我之前编写过一个叫 gomodifytags 的工具,它使我的生活变得很轻松。它会根据字段名称自动填充结构体标签字段。这是一篇非常长的博文,其解释了如何编写这样的工具以及每个构建细节。它包含许多独特的细节、技巧和未知的 Go 知识。拿起一杯咖啡☕️,让我们深入一下吧! 我要晨读
当我刚开始学习 Go 时,我正在玩不同的多路复用器(multiplexer),它可以作为 API 服务器使用。我发现了 3 个是非常有用的好东西,即 Gorilla mux、httprouter 和 bone(按性能从低到高排列)。即使 bone 有最佳性能和更简单的 handler 签名,但对于我来说,它仍然不够成熟,无法用于生产环境。因此,我最终使用了 httprouter。在本教程中,我将使用 httprouter 构建一个简单的 REST API 服务器。 我要晨读
在写《Go语言标准库》的第九章 —— 测试 时,看到了此文,讲解通俗易懂,于是翻译为中文,作为学习《Go语言标准库》的第九章的补充材料。如果你之前不知道 Go 中的单元测试,通过学习本文,你一定知道该怎么写了。 我要晨读
写 Go 的人往往对它的错误处理模式有一定的看法。按不同的语言经验,人们可能有不同的习惯处理方法。这就是为什么我决定要写这篇文章,尽管有点固执己见,但我认为听取我的经验是有用的。我想要讲的主要问题是,很难去强制执行良好的错误处理实践,错误经常没有堆栈追踪,并且错误处理本身太冗长。不过,我已经看到了一些潜在的解决方案,或许能帮助解决一些问题。 我要晨读
这篇文章想聊聊Go语言下的设计模式问题(包括 单例模式、工厂模式、装饰器模式),我觉得这个话题还是比较有意思的。Golang没有像java那样对设计模式疯狂的迷恋,而是摆出了一份“看庭前花开花落,望天空云卷云舒”的姿态。 我要晨读
尽管 Golang 推荐通过 channel 进行通信和同步,但在实际开发中 sync 包用得也非常的多。另外 sync 下还有一个 atomic 包,提供了一些底层的原子操作(这里不做介绍)。本篇文章主要介绍该包下的锁的一些概念及使用方法。 我要晨读