Sublime Text3 + Golang搭建开发环境

1.安装git 因为golang是通过git来管理远程包的,所以我们首先要安装git,下载地址:http://www.git-scm.com/download/。 git安装比较简单,直接下一步即可(在Windows Explorer integration选项中将“Git Bash here”和“Git GUI here”打对勾),需要了解具体安装的可以看这里。 2.安装Golang 1) 首先到https://golang.org/dl/选择适合你系统的安装包,(墙内:http://gola...阅读全文

2015-07-06 15:41 aqiang912
阅读:80002 评论:6

go 语言学习历程

接触go是2012年的时候,真正开始系统的学习和开发系统是2014年了,go语言的学习也算自己2014年的重要工作之一,对go语言学习的总结,也算是年底总结之一 1.学习go的原因和动机: 1>先前做过2年Unix c开发经验, 对于C系的语言有特殊的感情,go特别适合我胃口,用过后爱不释手; 2>go语言团队太过耀眼和强大:Thompson 图灵奖获得者,unix 和C的共同发明人;Pike PLAN9操作系统的主要开发者、UTF-8发明者;Robert Griesemer 参与java的Ho...阅读全文

阅读:5882 评论:0

Go操作mysql Memcache Mongodb

date: 2014-12-12 操作mysql操作mongodb操作memcache 发现go提供的操作msyql、memcache、mongodb的文档没有lua-ngx的好读,即实例不是很明确,此文列出自己操作时的实例,可让快速入手,但是优化以及错误处理等还有很多工作。 操作mysql go-sql-driver/mysql Example 上提供了用go操作mysql的两个例子。例子中关于查询,一个是一次只取一个结果,一个是一次去多个结果,而且使用了prepare的方法,防止sql注入攻...阅读全文

2015-07-17 10:35 u011321908
阅读:4032 评论:2

go语言的坑

Go语言是一个简单却蕴含深意的语言。但是,即便号称是最简单的C语言,都能总结出一本《C陷阱与缺陷》,更何况Go语言呢。Go语言中的许多坑其实并不是因为Go自身的问题。一些错误你再别的语言中也会犯,例如作用域,一些错误就是对因为 Go 语言的特性不了解而导致的,例如 range。 其实如果你在学习Go语言的时候去认真地阅读官方文档,百科,邮件列表或者其他的类似 Rob Pike 的名人博客,报告,那么本文中提到的许多坑都可以避免。但是不是每个人都会从基础学起,例如译者就喜欢简单粗暴地直接用Go语言...阅读全文

阅读:3268 评论:1

go语言解析html

有两个不错的库: https://github.com/PuerkitoBio/goquery 一个是 http://code.google.com/p/go.net/html html是html的解析器,把html文本解析出来,goquery基于html包,在此基础上结合cascadia 包(一个css选择器工具),实现类似于jquery的功能,操作html非常方便。 使用goquery来查找,选择相应的html节点,但如果要对选择的节点进行修改,删除操作,还需要深入使用html包。 html...阅读全文

阅读:40417 评论:2

一人千面:谈谈Go语言中的type

世界是复杂的。一个人、一个事物可以有多样的特性,而多个人多个事物又可以表现出一致的特性;从微观角度说,即具体到个体时,要求这个个体是多功能的多样性的,能够完成越多的功能具有越多的特性越好。比如一个人可以同时具有贤妻、慈母、严师和路人甲的身份,比如一个数字可以表示年龄、高度、分数等。从宏观角度说,从管理复杂性的角度出发,又要求许多的个体具有一致性以便进行统一处理以降低管理成本,比如各种机动车都可以“驾驶”,各种食物都可以“食用”,各种书写工具都可以“写”。换而言之:微观上一人千面;宏观上千人一面。...阅读全文

阅读:13316 评论:0

Go 1.5的并发特性与案例

Go语言最有用的特性是将并发作为第一支持的语言,使用协程goroutine, 非常容易实现代码的并发,这使得Go成为网络类应用的重要选择,本文以银行转账为例,阐述了Go 1.5新版本中如何使用协程实现并发。该文还指出了在Go 1.5版本之间所有协程只是运行在单个进程,并不支持多核CPU并行计算,1.5以后提升到支持多核。 Golang Security and Concurrency 下面代码是一段协程的实现: func hello() { println("Hello!") ...阅读全文

阅读:6817 评论:0

优化 Go 中的 map 并发存取

Catena (时序存储引擎)中有一个函数的实现备受争议,它从 map 中根据指定的 name 获取一个 metricSource。每一次插入操作都会至少调用一次这个函数,现实场景中该函数调用更是频繁,并且是跨多个协程的,因此我们必须要考虑同步。 该函数从 map[string]*metricSource 中根据指定的 name 获取一个指向 metricSource 的指针,如果获取不到则创建一个并返回。其中要注意的关键点是我们只会对这个 map 进行插入操作。 简单实现如下:(为节省篇幅,省...阅读全文

2015-04-02 10:31 88250
阅读:1852 评论:0

golang(5):编写WebSocket服务,客户端和html5调用

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46882777 转载请必须注明出处! 1,关于websocket HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。 在JavaEE7中也实现了WebSocket协议。 在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 参考: http://ba...阅读全文

2015-07-15 16:23 freewebsys
阅读:7513 评论:0

[Golang] 从零开始写Socket Server(1): Socket-Client框架

第一次跑到互联网公司实习 。。感觉自己进步飞快啊~第一周刚写了个HTTP服务器用于微信公共号的点餐系统~ 第二周就直接开始一边自学GO语言一边写用于Socket的服务器了。。。 因为发现Golang这一块资料挺少的,接下来我会在Blog里把整个Server的Coding,还有遇到的坑都记录下来~ 在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Gol...阅读全文

阅读:3994 评论:1

悟空:用Go语言编写的全文搜索引擎

最近Go语言1.5版正式发布,国内关于Go语言的学习和应用也逐渐火热,InfoQ也将关注并推动国内Go语言社区的发展。悟空开源项目是用Go语言编写的全文搜索引擎,InfoQ记者采访了它的作者陈辉,了解了这个项目背后的一些信息。 悟空搜索引擎的特点是高度可定制,具有如下特性: 高效索引和搜索(1M条微博500M数据28秒索引完,1.65毫秒搜索响应时间,19K搜索QPS) 支持中文分词(使用作者自己研发的Go语言中文分词工具sego分词包并发分词,速度27MB/秒) 支持计算关键词在文本中的紧邻距...阅读全文

阅读:12220 评论:0

Golang中defer、return、返回值之间执行顺序的坑

Go语言中延迟函数defer充当着 cry...catch 的重任,使用起来也非常简便,然而在实际应用中,很多gopher并没有真正搞明白defer、return和返回值之间的执行顺序,从而掉进坑中,今天我们就来揭开它的神秘面纱! 先来运行下面两段代码: A. 无名返回值的情况 package main import ( "fmt" ) func main() { fmt.Println("return:", a()) // 打印结果为 return: 0 } func a() int { va...阅读全文

2015-09-13 15:47 henrylee2cn
阅读:16934 评论:2

Go语言的传参和传引用

传参和传引用的问题 很多非官方的文档和教材(包括一些已经出版的图书), 对Go语言的传参和引用的讲解 都有很多问题. 导致众多Go语言新手对Go的函数参数传参有很多误解. 而传参和传引用是编程语言的根本问题, 如果这个问题理解错误可能会导致很多问题. 传slice不是传引用! 首先, Go语言的函数调用参数全部是传值的, 包括 slice/map/chan 在内所有类型, 没有传引用的说法. 具体请看Go语言的规范: After they are evaluated, the parameter...阅读全文

2015-09-14 13:29 future_challeng 等
阅读:9136 评论:4

GO LiteIDE 使用

对于 GO语言的开发环境 网上推荐的都是LiteIDE 当然现在各大主流IDE工具都有插件支持了 如eclipse,IntelliJ 等。 那么今天就讲下LiteIDE 碰到的一些坑。 首先 我们需要先把GO安装好,默认情况下 GO安装好后会自动设置GOROOT(windows) 其次 下载LiteIDE http://www.golangtc.com/download/liteide 安装好后,我们就进行我们的Hello world 我们解压LiteIDE 就能执行(是不是很轻巧) 如图: 这...阅读全文

2015-12-29 15:25 productshop
阅读:7139 评论:2

[翻译]十条有用的 GO 技术

十条有用的 Go 技术 这里是我过去几年中编写的大量 Go 代码的经验总结而来的自己的最佳实践。我相信它们具有弹性的。这里的弹性是指: 某个应用需要适配一个灵活的环境。你不希望每过 3 到 4 个月就不得不将它们全部重构一遍。添加新的特性应当很容易。许多人参与开发该应用,它应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速的修复。我用了很长的时间学到了这些事情。其中的一些很微小,但对于许多事情都会有影响。所有这些都仅仅是建议,具体情况具体对待,并且如果有帮助的话务必...阅读全文

2015-11-14 15:02 jiaolongdy
阅读:1292 评论:0

Go语言TCP网络编程(详细)

一、序言 Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的 网络编程方面,我们最常用的就是tcp socket编程了,在posix标准出来后,so...阅读全文

2016-12-28 17:04 hacker00011000
阅读:26222 评论:1

年度语言 golang 使用感受

首先,无意进行语言之争,毕竟,PHP是世界上最好的语言,没有之一。这个话题可以停下来了。 2016年已经过去,16年的年度语言给了go语言,而正好这一年我都是用go用得比较多,而且版本从1.2一直用到了1.8,有一些感受,来说说我对这个年度编程语言的一些粗浅理解吧。之前也写过一篇go语言的文章,但是那时候用得还不是很多,有些特性没有用上,所以理解上和今天的有些不同。 这篇文章就不分什么优势和劣势了,想到哪里说到哪里。 指针还是很重要 先看一个小坑,可能很多初次接触go的会遇到,go的range迭...阅读全文

2017年1月16日 吴yh坚
阅读:1097 评论:0

搭建golang版ss服务

搭建golang版ss服务 第一步:安装 golang cd /usr/local # golang安装到此路径下 wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz tar -xvf go1.6.3linux-amd64.tar.gz vim /etc/profile # 设置系统 GOROOT 并添加环境变量 export GOROOT=/usr/local/go export PATH=$PATH:$G...阅读全文

2017年1月8日 youyu岁月
阅读:2824 评论:0

Golang 中使用 JSON 的小技巧

有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用。 本来用一个json:",string" 就可以支持了,如果不知道golang的这些小技巧,就要大费周章了。 参考文章:http://attilaolah.eu/2014/09/10/json-and-struct-composition-in-go/ 临时忽略struct字段 type User struct { Email string `json:"email"` Password string `json:"pa...阅读全文

2017-06-22 17:04:00 徐学良
阅读:1466 评论:0