Golang vim开发环境设置

1 简介 上一篇博客我们介绍了Golang的安装、编译、运行,本篇博客我们介绍如何设置面向Golang的vim开发环境。原生的vim无法自行识别golang关键字,开发环境如同编辑普通文本文件,无法高亮显示,更不要说自动补全等功能。为此,我们需要在vim中加入面向golang的插件vim-go。同时,根据vim-go的安装引导,我们还需要安装YouCompleteMe(YCM)。2 安装VundleVundle的git页面 https://github.com/VundleVim/Vundle....阅读全文

51CTO博客 2015-10-10 10:47:34 说话的白菜

Go语言学习笔记4——struct

原计划这篇是写函数的,翻来覆去的研究函数,也没找到什么感悟,于是就写struct吧。这可是个好家伙阿,一个非玩具的C系统中,绝对是struct的天下,可Go更是青出于蓝胜于蓝。 struct在Go中基本总是和type一起出现,Go的type关键字相似于C中的typedef,给一个变量定义个别名。 先欣赏一段struct的代码: package main import "fmt" /** * 定义Person类 */ type Person struct { name string age int...阅读全文

CSDN博客 2012-03-04 19:50 Marcky

Go语言资料收集

Go语言资料收集 说明 发布站点 GitHub CSDN 新浪最后更新 2012-03-31 Go1正式发布,更新相关资料,详见 变更记录缘起说明 想学习称手的新语言,发现Go后非常感兴趣,也把接触到的一些资料整理共享出来。 资料若有错误或缺漏,或者大家有更好的建议,欢迎 邮件联系 可看 已收集建议收集原则 尽量收集原创链接,有时会记录一些学习心得,或摘录一些启发自己的原文 如果同学们觉得内容还有点帮助,欢迎转载,指明原始出处更好,谢谢! (^_^) 注意 Go1变化较大,网上相关翻译文章可能未...阅读全文

CSDN博客 2011-12-22 17:29 wonderfogo

Go语言简单的TCP编程

前期准备 需要import "net"包IP类型,其中一个重要的方法是IP.ParseIP(ipaddr string)来判断是否是合法的IP地址 TCP Client func (c *TCPConn) Write(b []byte) (n int, err os.Error)用于发送数据,返回发送的数据长度或者返回错误,是TCPConn的方法func (c *TCPConn) Read(b []byte) (n int, err os.Error)用于接收数据,返回接收的长度或者返回错误,是...阅读全文

CSDN博客 2013-09-17 15:21 ygrx

Go程序GC优化经验分享

作者:达达来源:http://1234n.com/?post/yzsrwa最近一段时间对《仙侠道》的服务端进行了一系列针对GC的调优,这里跟各位分享一下调优的经验。游戏第一次上线的时候,大部分精力都投入在做cpuprof和memprof找性能瓶颈和内存泄漏上,没有关注过Go的GC运行情况。有一次cpuprof里的scanblock调用所占的比例让我注意到Go的GC所带来的性能消耗,记得那份cpuprof里,scanblock调用占到49%。也就是说有一半的CPU时间浪费在了GC上。于是我开始研究...阅读全文

CSDN博客 2013-12-25 16:28 heiyeshuwu

ubuntu下golang的安装、编译、运行

1 简介最近两年Golang发展迅猛,大有比肩C++、Java等主流语言、成为未来十年最为流行的编程语言之势。在开源社区中,热火朝天的Docker、Kubernetes、CoreOS生态圈都采用Golang开发,便是Golang大热的最佳例证。Golang之所以备受推崇,一方面得益于其特有的并发编程模型,一方面得益于其更为简约抽象的编程哲学(接口、OOP等特性)。作为分布式领域的开发者,不能不关注Golang。2 安装环境:Ubuntu 14.04sudo apt-get install gol...阅读全文

51CTO博客 2015-10-10 10:03:55 说话的白菜

Go语言的测试

之前看过一本书,说:“凡大神都是先写好单元测试用例,才去写代码的”。我一直都记在心里。今天终于有空,就看了看Golang的测试包testing。 谢大的书和Golang官方的文档讲的差不多,Golang提供了两个测试方式:用例测试和压力测试。 ###1. 用例测试 用例测试的规则我是复制谢大的: 文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码 你必须import testing这个包 所有的测试用例函数必须是Test开头 测试用例会按照源代码中写的顺序依次...阅读全文

Go语言的插入排序实现

这个算法还是我考研的时候看懂的。插入排序大体有两种,头插法和尾插法。区别就是插入的位置是头部还是尾部。 简单说一下插入排序的思路: 从第二个元素开始遍历,第一个元素认为是有序的; 将要插入的元素依次与已有序队列比较,插入到合适的位置; 循环执行,直到遍历结束。 Golang包里的实现和我上面说的严奶奶的有点区别。将遍历得到的元素倒着与有序队列依次比较。如果比有序队列的小,交换这两个元素。 这样的方法和传统的相比,插入步骤同样都是通过从后向前依次移动实现的插入。而这个方法更加简单一点,不需要声明临...阅读全文

Cyeam 01 September 2014 Bryce

Go语言中对图像进行缩放

由Google开发,简洁、高效、开源的Go语言日渐成为语言新宠。它专门针对多处理器系统应用程序的编程进行优化,使得Go编译的程序与C或C++代码的速度相媲美,且更安全、支持并行进程。Go语言在Go1版本上支持Windows, 苹果Mac OS X, Linux和FreeBSD操作系统。Go支持面向对象,而且具有真正的封装(closures)和反射 (reflection)等功能。在学习曲线方面,派克认为Go与Java类似,对于Java开发者来说,应该能够轻松学会 Go。同样,对于C#开发者来说,...阅读全文

CSDN博客 2013-04-12 14:44 johnsuna

Go程序性能分析pprof

参考: http://blog.golang.org/profiling-go-programs http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html Go语言的pprof是Google C++ profiler的移植,所以用法也差不多。这里简要记录步骤如下: 1. 代码 要在Go语言中开启profiling,可以参考以下代码: import ( "runtime/pprof" // 引用pprof packag...阅读全文

CSDN博客 2013-11-19 11:35 yhcharles

Go语言编译器安装

临近回家的日子,在公司比较清闲,所以找来google新出的go语言研究研究,也是看到最新出来的编程语言排名,竟然升到了13,一下激起了我的兴趣,闲话少出。 参考文章:http://golang.org/doc/install.html 关于go语言的介绍就不在这里罗嗦,网上会有很多,我只记录一下我的安装过程 1.环境变量设置 GOROOT:go语言的根目录 GOOS和GOARCH:操作系统的名称和编译架构的名字,有以下一些组合 $GOOS $GOARCH darwin 386 darwin am...阅读全文

CSDN博客 2010-02-10 16:59 nankaihunter

go run的一个小细节

Golang的一个优势就是编译快,可以当脚本语言使用,利用go run直接执行.go文件,就像执行脚本一样。 我很喜欢这点,一般都懒得build。但在尝试beego(https://github.com/astaxie/beego)框架时,刚照着写了个hello world,总是不对,提示找不到模版。 开始了漫长的调试,查看源代码、修改配置、、、各种不行。 2013/05/01 10:03:11 [C] [Handler crashed with error can't find templat...阅读全文

CSDN博客 2013-05-03 21:14 wyd_npu

Go开发IDE环境liteide

liteide下载地址: install : http://code.google.com/p/golangide/downloads/list source: http://code.google.com/p/liteide/ 软件的学习直接用作者提供的文档就行了,中国人写的IDE,文档也是中文的,步骤就不多讲了。 安装3个基本步骤: 1. 安装GO环境 见前面的文章(下载一个go安装包 安装就可以了) 2. 下载和解压liteide 3. gocode 代码提示程序安装。 原来文档没有说太清...阅读全文

CSDN博客 2012-07-09 23:48 shlpyy

Go语言的堆排序实现

关于堆排序的算法,可以参考我去年的文章《堆排序(HEAP SORT)》。那篇文章讲的是建立小顶堆进行的排序,这里说的是建立大顶堆建立的排序,差不多。 在Golang源码的sort包里,自带了排序函数。该函数可以对各种类型进行排序,只不过该类型需要实现三个函数,使得该类能够实现Interface接口。 type Interface interface { // Len is the number of elements in the collection. Len() int // Less re...阅读全文

Golang的map迭代

Golang不同于Java等常见的语言,字节在语言层面支持了map。map类似于Java当中的Set,是数学中集合的概念。集合当中不会出现重复元素,并且是无序的。与此相关的就是数组和队列,它们是有序的。 前几天要做一个接口调用,需要用到安全机制,将请求参数编码出一个签名,一并用来发送请求。相关的可以参考《接口安全机制》。这里会涉及到两次取请求URL的步骤,一次是用来拼请求,一次是用来计算签名。当时机制的我,为了方便写代码,就将参数放在了map当中,遍历两次map就能够实现了。一般情况下都能够正常...阅读全文

Golang实现大数乘法

大数乘法,简单的说,就是把小学学的列竖式计算的方法进行了实现。这其实也就是个乘法分配率的变形。 5 * 12 = 5 * (2 + 10) = 5 * 2 + 5 * 10 所以第二行竖式,12的十位1与5相乘的时候,需要再最后空一位,其实是在最后省略了一个0。十位就是省略一个0,也就是左移一位,那么百位就是左移两位。以此类推。 通过代码实现,相乘的两个数就不能用整形表示了,因为存不了很大的整数。需要用字符串表示。按位相乘,最后把结果错位相加就行。乘法的结果等于乘数的位数,所以可以申请一个和乘数...阅读全文

深入 Go Playground 内幕

简介 2010年9月,我们介绍了Go Playground,这是一个完全由Go代码组成和返回程序运行结果的web服务器。 如果你是一位Go程序员,那你很可能已经通过阅读Go教程或执行Go文档中的示例程序的途径使用过Go Playground了。 你也可以通过点击 talks.golang.org上幻灯片中的“Run” 按钮或某个博客上的程序(比如最近一篇关于字符串的blog)而使用之. 本文我们将学习Go playground是如何实现并与其它服务整合的。其实现涉及到不同的操作系统和运行时间,这...阅读全文

开源中国翻译 2014-10-10 08:00:03 Mitisky, Garfie 等