今天继续来一个Go语言的”坑“:Go语言 http/FormValue 踩坑记。国内初学者使用 Go 写 Web 的居多,在使用 net/http 库时,不小心很有可能会遇到本文提到的一个“坑”。 我要晨读

已有1736人晨读

Golang语言相对成熟了,但真正写起来,还是要注意一些“坑”的,下面是遇到的三个问题(误用定时器,狂占CPU、小心list.List的Delete逻辑和要给template起个正确的名字),这里分享出来,希望能对遇到同样问题的童鞋有所帮助。 我要晨读

已有1863人晨读

在Go语言中有一些调试技巧能帮助我们快速找到问题,有时候你想尽可能多的记录异常但仍觉得不够,搞清楚堆栈的意义有助于定位Bug或者记录更完整的信息。本文将讨论堆栈跟踪信息以及如何在堆栈中识别函数所传递的参数。 我要晨读  相关阅读: 网页链接 

已有2170人晨读

Golang编程经验总结:本文总结了 Go 语言使用的方方面面,包括库的选择、注意事项,错误处理,如何进行调试,避免发生竞态条件等,是值得收藏的文章。 我要晨读

已有1490人晨读

遍历目录中所有文件,这个需求是很常见的,各个语言都有相应的处理方式。然而,如果获取 Windows 下的隐藏文件?Go 语言如何实现?本文介绍如何访问 System Volume Information 文件夹。 我要晨读

已有1638人晨读

Gopher China 在上海顺利举行。今天的文章跟 Gopher China 的主要组织者 ASTA谢 开发的 Beego 框架相关,算是支持 Go 在国内的发展。beego下实现martini中的透明式静态文件服务(static folder)效果。服务静态文件,相信不少人都遇到过一些问题。 我要晨读

已有2299人晨读

并发语言俨然是应大规模应用架构的需要而提出,有其现实所需。前后了解了Scala和Golang,深深体会到现代并发语言与旧有的Java、C++等语言在风格及理念上的巨大差异。本文主要针对Scala和Golang这两个我喜爱的并发语言在并发特性上的不同实现,做个比较和阐述,以进一步加深理解。 我要晨读

已有1604人晨读

我们知道goroutine是协程的go语言实现,它是语言原生支持的,相对于一般由库实现协程的方式,goroutine更加强大,它的调度一定程度上是由go运行时(runtime)管理。其好处之一是,当某goroutine发生阻塞时(例如同步IO操作等),会自动出让CPU给其它goroutine。本文和大家一起理解goroutine。 我要晨读

已有1645人晨读

Go语言的主要设计者之一罗布·派克( Rob Pike)曾经说过,如果只能选择一个Go语言的特 性移植到其他语言中,他会选择接口。可见接口在golang中的地位,及其对gloang这门语言所带来的活力。本文和大家一起深入理解interface。 我要晨读

已有1652人晨读

Go语言新人常常会很疑惑为什么这门语言的声明语法(declaration syntax)会和传统的C家族语言不同。在这篇博文里,我们会进行一个比较,并做出解答。本文是 Rob Pike 在 Go 官方博客解释这个问题的翻译,那些依然疑惑这个问题的可以看看。 我要晨读

已有1819人晨读

晨读序列:使用Golang开发微信公众平台之发送客服消息。关注并使用过微信“飞常准”公众号的朋友们都有过如下体验:查询一个航班情况后,这个航班的checkin、登机、起降等信息都会在后续陆续异步发给你,这个服务就是通过微信公众平台的客服消息实现的。这篇文章我们就来说说如何用golang实现发送文本客服消息。 我要晨读

已有1368人晨读

晨读序列:使用Golang开发微信公众平台之接收加密消息。通过上篇,公众服务与微信服务器间的消息是“裸奔”的(即明文传输,通过抓包可以看到)。显然这对于一些对安全性要求较高的大企业服务号来说,比如银行、证券、电信运营商或航空客服等是不能完全满足要求的。于是乎就有了微信服务器与公众服务间的数据加密通信流程。 我要晨读

已有1498人晨读

晨读序列:使用Golang开发微信公众平台之接收文本消息。一旦接入验证成功,成为正式开发者,你可能会迫不及待地想通过手机微信发送一条"Hello,Wechat”到你的公众号服务器。不过上一篇的那个程序还无法处理手机提交的文本消息,本篇将介绍如何用Golang编写公众号程序来接收手机端发送的 文本消息以及回复响应消息。 我要晨读

已有1561人晨读

晨读序列:使用Golang开发微信公众平台。移动互联网时代,微信平台一枝独秀,是社交领域的巨人,但其诞生也才不到4年。微信平台的发展前景十分广阔,企鹅公司将其打造为人与人、人与物、物与物的统一、万能入口之雄心不变,因此围绕微信平台广大开发者依旧有诸多机会。本文是第一篇:接入验证。 我要晨读

已有1173人晨读

两个 map(m1,m2),怎么比较内容是否一样?== 或 != 没法直接比较两个 map(编译会报错)。一般我们想到会是:循环m1,看看每个key是否都在m2中存在,再比较m1[key]是否和m2[key]相等,如果都ok,再依次循环m2,代码挺多。本文介绍了通过 Go 语言提供的 Reflect.DeepEqual 来实现 map 的比较。 我要晨读

已有1542人晨读

如果go代码里使用了cgo,那么编译的时候电脑上必须按照gcc才能正确编译。这篇文章展示了如何用c写一个包让go调用并且不需要使用cgo。实际上,Go1.4之前(包括1.4),runtime 中的很多代码就是这种方式。了解这种方式,对深入学习 runtime 会有好处。 我要晨读

已有969人晨读

在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。Go语言中的字符和字符串,你应该经常使用,但 Unicode、UTF8、rune、int32 等一序列问题,你是否都能知其然呢。本文介绍 Go语言 中的字符和字符串,当做一个引子来好好研究下相关知识。 我要晨读

已有1201人晨读

Go有强烈的C背景,除了语法具有继承性外,其设计者以及其设计目标都与C语言有着千丝万缕的联系。在Go与C语言互操作(Interoperability)方面,Go更是提供了强大的支持。尤其是在Go中使用C,你甚至可以直接在Go源文件中编写C代码,这是其他语言所无法望其项背的。本文介绍Go与C语言的互操作。 我要晨读

已有954人晨读

我们在生产环境下运行的系统要求优雅退出,即程序接收退出通知后,会有机会先执行一段清理代码,将收尾工作做完后再真正退出。我们采用系统Signal来 通知系统退出,即kill pragram-pid。本文介绍Go中的系统Signal处理。 我要晨读

已有916人晨读

Go语言受到诟病最多的一项就是其错误处理机制。如果显式地检查和处理每个error,这恐怕的确会让人望而却步。你可以试试这里列出的几个方法,以避免你走入错误处理方法的误区当中去。本文给出了Go语言的有效错误处理方法。 我要晨读

已有1115人晨读