Go 编程语言入门教程 (二)

原文:http://golang.org 翻译:刘金雨/刘云涛 <yuntao.liu#gmail.com> http://www.log4think.com 数据类型 Types Go有一些常见的数据类型,例如 int 和 float,其值采用机器“适用”的大小来表示。也有定义了明确大小的数据类型,例如 int8、float64 等,以及无符号整数类型,例如 uint、uint32 等。这些都是完全不同的数据类型,即使 int 和int32 都是32位整数,但它们是不同的类型。对于表示字符串元...阅读全文

CSDN博客 2009-12-07 20:40 passos

Go语言知识积累——特点简介与windows开发环境搭建

缘起看到一篇文章,讲述如何将服务器从30台降到2,性能甚至更加优秀。文章中介绍了完成这一出色任务的语言为Go,于是对Go语言产生了兴趣,逐步了解到这还是一门比较新的语言,且潜力很足。所以展开了研究之旅~ 特点简介: 1.引入轻量级线程——协程(coroutine),Go语言中叫goroutine。 2.采用Erlang风格的并发模型,即消息是进程间唯一的通信方式(而非共享内存)。两个goroutine之间通信通过channel(通道)进行。 3.对代码风格进行了强制统一,比如public变量必须...阅读全文

CSDN博客 2014-11-06 14:25 yanmei004

Go Object Oriented Design

Go hastypes and valuesrather than classes and objects. So can a language without classes or objects be object-oriented? While Go may not fit the typical mold of an OOP language, it does provide many of the same features, albeit in a slightly differen...阅读全文

开源中国博客 2014-11-06 13:30 Jerikc

golang讲解(go语言)标准库分析之io.ioutil

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库 今天我们讲解的是golang标准库里边的io/ioutil包–也就是package io/ioutil 1.ioutil.ReadDir(dirname string)这个函数的原型是这样的 func ReadDir(dirname string) ([]os.FileInfo, error) 不难看出输入的是dirname类型是string类型的 譬如”d:/go”,然会是一...阅读全文

微度网络 2013-12-27 widuu

go语言安装配置及HelloWorld

参考http://www.cnblogs.com/MikeZhang/archive/2012/02/10/nppRunGo.html 最近google的go语言流行程度越来越大了,学着别人写的内容自己在windows下搭建了一个简单的开发环境,记录在这里,如果需要参考的可以借鉴。 一、 下载编译器 下载go语言的开发工具可以到http://code.google.com/p/gomingw/downloads/list去下载,这里列出了当前最新的版本。 我选择下载http://gomingw....阅读全文

CSDN博客 2014-10-13 10:32 shaoxiaoning

Beego源码分析

beego 是 @astaxie 开发的重量级Go语言Web框架。它有标准的MVC模式,完善的功能模块,和优异的调试和开发模式等特点。并且beego在国内企业用户较多,社区发达和Q群,文档齐全,特别是 @astaxie 本人对bug和issue等回复和代码修复很快,非常敬业。beego框架本身模块众多,无法简单描述所有的功能。我简单阅读了源码,记录一下beego执行过程。官方文档已经图示了beego执行过程图,而我会比较详细的解释beego的源码实现。 注意,本文基于beego 1.1.4 (2...阅读全文

傅小黑的小玩意儿 2014-04-30 傅小黑

Martini源码剖析

martini是非常优雅的Go Web框架。他基于依赖注入的思想,仿照Sinatra的路由设计,参考Express的中间件设计,而且核心微小,扩展方便,非常值得学习。但是由于本身API设计简洁,使很多细节无法从代码理解。所以,我写一点笔记记录martini的工作方式。 Martini核心 我们从最简单的官方实例入手: package main import "github.com/go-martini/martini" func main() { m := martini.Classic() m...阅读全文

傅小黑的小玩意儿 2014-04-24 傅小黑

Go语言知识积累——特点简介与windows开发环境搭建

缘起看到一篇文章,讲述如何将服务器从30台降到2,性能甚至更加优秀。文章中介绍了完成这一出色任务的语言为Go,于是对Go语言产生了兴趣,逐步了解到这还是一门比较新的语言,且潜力很足。所以展开了研究之旅~ 特点简介: 1.引入轻量级线程——协程(coroutine),Go语言中叫goroutine。 2.采用Erlang风格的并发模型,即消息是进程间唯一的通信方式(而非共享内存)。两个goroutine之间通信通过channel(通道)进行。 3.对代码风格进行了强制统一,比如public变量必须...阅读全文

CSDN博客 2013-11-12 23:52 denghp83

Go编程语言简介

简介 本文是关于Go编程语言的基础教程,主要面向有C/C++基础的读者。它并不是一个语言的完整指南,关于 Go的具体细节请参考 语言规范 一文。在读完这个入门教程后, 深入的华可以继续看 Effective Go ,这个文档 将涉及到Go语言的更多特性。此外,还有一个《Go语言三日教程》系列讲座: 第一日, 第二日, 第三日。 下面将通过一些小程序来演示go语言的一些关键特性。所有的演示程序都是可以运行的,程序的代码在安装目录的 "/doc/progs/"子目录中。 文中的代码都会标出在源代码文...阅读全文

CSDN博客 2011-05-17 17:44 zaojangkn

Go语言是如何处理栈的

Go语言是如何处理栈的 十一 05 bigwhite技术志 cloudflare, Go, Golang, Google, goroutine, heap, Memory, OS, runtime, Stack, Thread, vitualmemory, 垃圾回收, 栈, 线程, 虚拟内存, 运行时 No Comments Go 1.4Beta1刚刚发布,在Go 1.4Beta1中,Go语言的stack处理方式由之前的"segmented stacks"改为了"continuous stack...阅读全文

Go 1.4中值得关注的几个变化

Go 1.4中值得关注的几个变化 十一 04 bigwhite技术志 Compiler, GCC, gccgo, Go, go1.3, go1.4, Golang, Package, runtime, 包, 垃圾回收, 性能, 编译, 编译器, 运行时 No Comments 在Go 1.3发布半年过去后,Go核心项目组于本月初发布了Go 1.4 Beta1版本。这个版本的几个变化点虽然不是革命性的,但对后续Go语言的发展来说,打下了基础,定下了基调。这里就几个值得关注的变化点结合Go 1.4代...阅读全文

Tony Bai 2014-11-04 bigwhite

binary array search的几种写法(go)

03 Jun 2013 binary array search的几种写法(go) 儿童节那天,对比了python内置的dict和binary array search查找的性能,dict大幅领先,有些出乎意料: dict虽然是O(1),binary search是O(log n)。当n为1M时,log n也仅有20,并且直观上log n前面的常数不大,理论上应该和O(1)差别不是很大 怀疑到python语言,binary array search是由手工python实现,而dict是C实现。py...阅读全文

A programmer's site 03 Jun 2013 沈锋

Go语言并发之美

EMC中国研究院 颜开 简介 多核处理器越来越普及,那有没有一种简单的办法,能够让我们写的软件释放多核的威力?答案是:Yes。随着Golang, Erlang, Scale等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式需要有一个极其简洁的内核,还有在此之上丰富的外延,可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。 并发模式之内核 这种并发模式的内核只需要协程和通道就够了。其中协程负责执行代码,通道负责在协程之间传递事...阅读全文

CSDN博客 2013-05-19 11:51 e_wsq

Golang语言标准库http/url的Values的详细介绍

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库http/url Values 今天我们更新文章,主要推广的还是GO语言,当然现在热门搜索的还是Golang,今天我们主要讲解的就是Golang标准库里边的net/url的下边的这些 [php] type Values func ParseQuery(query string) (m Values, err error) func (v Values) Add(key, valu...阅读全文

微度网络 2013-12-25 widuu

docker 的log和golang runtime

docker的log在pkg/log路径下的log.go。很简单: 1. 一共4个级别Debug,Info, Error,Fatal。 2. Info是直接输出到Stdout,其他是输出到Stderr(包括debug)。Fatal输出完log会自动退出 3. 实际进行输出的是logf 函数。其中用到golang的runtime库,如下 _, file, line, ok := runtime.Caller(2) 4. runtime.Caller() func Caller(skip int) ...阅读全文

CSDN博客 2014-09-02 14:39 ikaruga11

Go中error类型的nil值和nil

先看C语言中的类似问题:空字符串。 1 const char* empty_str0 = ""; 2 const char* empty_str1 = "\0empty"; 3 const char* empty_str2 = NULL; 以上3个字符串并不相等,但是从某种角度看,它们都是对应空的字符串。 empty_str0 指向一个空的字符串,但是empty_str0本身的值是有效的。empty_str1 指向一个非空的字符串,但是字符串的第一个字符是'\0'。empty_str2 本身是一...阅读全文

CSDN博客 2014-01-22 15:23 kjfcpua

golang: 详解interface和nil

声明:文章转载自http://my.oschina.net/goal/blog/194233 golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org/pkg/builtin/#Type...阅读全文

CSDN博客 2014-05-16 08:18 kai_ding

Go RPC

什么是RPC? RPC是Remote Procedure Call的缩写,从字面意思理解就是远程过程调用,具体可以见维基百科的解释,如果你英文足够好可以看这里wikipedia,我的理解可以简单的用一句话来描述:RPC就是一个本地程序可以通过网络调用远程的一个子程序。 Go RPC Go的RPC中如果客户端是Go语言编写的则将用Go特有的Gob序列化,同时可以选择rpc/jsonrpc包来用json格式序列化以便和其他的RPC System交互。 Go中的RPC有以下几个限制: 1.Remote...阅读全文

CSDN博客 2013-04-26 12:52 wowzai

Go语言异步服务器框架原理和实现

Go语言类库中,有两个官方的服务器框架,一个HTTP,一个是RPC。使用这个两个框架,已经能解决大部分的问题,但是,也有一些需求,这些框架是不够的,这篇文章,我们先分析一下HTTP 和 RPC服务器的特点, 然后结合这两个服务器的特点,我实现了一个新的服务器,这个服务器非常适合客户端和服务器端有大量交互的情况。 HTTP服务器的特点: HTTP的请求 和 响应的周期如下: 对于一个HTTP 长连接,一个请求必须等到一个响应完成后,才能进行下一个请求。这就是http协议最本质的特点,是串行化的。而...阅读全文

博客园 2013-08-05 14:58 niniwzw