![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
hellochenlu
这个作者很懒,什么都没留下…
展开
-
Golang中的测试
Package testing provides support for automated testing of Go packages. It is intended to be used in concert with the “go test” command, which automates execution of any function of the form.func T原创 2016-05-24 11:12:04 · 384 阅读 · 0 评论 -
用Go来编写分布式系统,相比用C/C++的好处
原文链接:https://www.zhihu.com/question/27277398Go 支持 Goroutine,超轻量级的线程。在高并发的系统中,可以按照多线程的方式写程序,从而保证逻辑的清晰和简单,又可以获得非常高的性能。同样的事情在C++中,如果用多线程,会导致系统线程过多带来大量的上下文切换overhead;如果采用基于消息的架构,虽然可以获得较高的效率,但程序逻辑会被打转载 2016-08-10 19:48:09 · 3689 阅读 · 0 评论 -
Go语言中的 Array, Slice和 Map
原文链接:http://studygolang.com/articles/2685转载 2016-08-31 22:11:22 · 291 阅读 · 1 评论 -
[Golang]Map的一个绝妙特性
原文链接:http://studygolang.com/articles/2494好了,现在回来看看这个文章。过去几周,我看到的人们对Go语言的热情和语言的发展势头真是让我无比惊叹。这里面的一部分原因可能是和Gophercon 2014有关,在我写这篇文章的时候,刚刚举办完。我对那些能参加的人真是羡慕,嫉妒,恨啊!从会议计划和讨论话题来看,会议确实很棒。另外能够去和Ro转载 2016-08-06 12:04:08 · 4785 阅读 · 0 评论 -
Go语言几大命令简单介绍
假如你已安装了Go语言,你可以在命令行执行go命令查看相关的Go语言命令。如图:go buildgo build 命令主要是用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。如果是普通包,当你执行go build命令后,不会产生任何文件。如果是main包,当只执行go build命令后,会在当前目录下生成一个可执行文件。如果转载 2016-08-18 09:20:34 · 594 阅读 · 0 评论 -
golang语言中map的初始化及使用
原文链接:http://studygolang.com/articles/2379// 先声明mapvar m1 map[string]string// 再使用make函数创建一个非nil的map,nil map不能赋值m1 = make(map[string]string)// 最后给已声明的map赋值m1["a"] = "aa"m1["b"] = "bb"// 直接创建m转载 2016-08-06 11:30:33 · 1502 阅读 · 1 评论 -
Golang项目目录结构组织
原文地址:http://www.cnblogs.com/wlts/archive/2013/06/01/3112004.html从接触golang到现在满打满算两周时间,总的来说,语法够简单,不过现在可以看、可以参照的资料数量太少了。还记得我刚开始写的第一个有点用的程序,1000多行代码吧,完全挤在一个文件里,我不知道如果把这些内容分拆到不同的文件中去,该怎样编转载 2016-08-17 16:55:32 · 736 阅读 · 0 评论 -
golang中的RPC调用服务器方法
原文链接,参考Golang中文文档:http://docscn.studygolang.com/pkg/net/rpc/#NewServerrpc 包提供了一个方法来通过网络或者其他的I/O连接进入对象的外部方法. 一个server注册一个对象, 标记它成为可见对象类型名字的服务。注册后,对象的外部方法就可以远程调用了。一个server可以注册多个 不同类型的对象,但是却不可以注册多个转载 2016-08-05 20:29:56 · 4143 阅读 · 0 评论 -
golang中net包用法
func Listen(net, laddr string) (Listener, error) //返回在一个本地网络地址laddr上监听的Listener。网络类型参数net必须是面向流的网络:"tcp"、"tcp4"、"tcp6"、"unix"或"unixpacket"。具体参见Dial函数获取laddr的语法。type Listener //Listener是一个用于面向流转载 2016-08-05 19:14:47 · 1937 阅读 · 0 评论 -
go install: no install location for directory outside GOPATH
When you run go install Go looks for $GOBIN env variable path. Either you need to set your $GOBIN to $GOPATH/bin$ export GOBIN=$GOPATH/binand/or add $GOBIN to your OS search path$ expor原创 2016-08-17 10:32:43 · 8086 阅读 · 0 评论 -
golang中的channel
代码如下:// fuck.gopackage mainimport ( "fmt")func Count(ch chan int) { fmt.Printf("Counting") ch <- 1}func main() { chs := make([]chan int, 10) for i := 0; i < 10; i++ { chs[i] = make(c原创 2016-06-27 22:31:36 · 3001 阅读 · 0 评论 -
rpc的go 和 call
在 RPC 客户端,Go 的 net/rpc 包提供了便利的 rpc.Dial() 和 rpc.DialHTTP() 方法来与指定的 RPC 服务端建立连接。在建立连接之后,Go 的 net/rpc 包允许我们使用同步或者异步的方式接收 RPC 服务端的处理结果。调用 RPC 客户端的 Call() 方法则进行同步处理,这时候客户端程序按顺序执行,只有接收完 RPC 服务端的处理结果之后才可以原创 2016-05-19 10:15:42 · 778 阅读 · 0 评论 -
数组切片
转自:Go语言编程 32页在前一节里我们已经提过数组的特点:数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。显然这种数据结构无法完全满足开发者的真实需求。不用失望,Go语言提供了数组切片(slice)这个非常酷的功能来弥补数组的不足。初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变转载 2016-05-15 17:06:31 · 7878 阅读 · 0 评论 -
golang中的类型和接口
Go语言的类型定义非常接近于C语言中的结构(struct),甚至直接沿用了struct关键字。相比而言,Go语言并没有直接沿袭C++和Java的传统去设计一个超级复杂的类型系统,不支持继承和重载,而只是支持了最基本的类型组合功能。巧妙的是,虽然看起来支持的功能过于简洁,细用起来你却会发现,C++和Java使用那些复杂的类型系统实现的功能在Go语言中并不会出现无法表现的情况,这反而让人反思其他语转载 2016-05-13 16:39:48 · 1558 阅读 · 0 评论 -
Base 128 Varints 编码
Google Protobuf里面提出了“Base 128 Varints”编码,这是一种变字节长度的编码,官方描述为:varints是用一个或多个字节序列化整形的一种方法。我理解要点有三个(1)操作是序列化(2)操作对象是整形(3)变长编码。重点是最后一点,他是如何编码的呢? (1)除了最后一个字节,varint中的每个字节的最高位设为1,表示后面还有字节出现转载 2016-05-13 15:47:54 · 3642 阅读 · 1 评论 -
GO语言延迟函数defer用法分析
defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理、释放资源、清理数据、记录日志等。这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一。代码1:了解 defer 的执行顺序package mainimport "fmt"func fn(n int) int { de转载 2016-11-16 15:04:04 · 1328 阅读 · 0 评论