Go 的 HTTP 工具

nosurf,这是Go语言的一个CSRF跨站请求伪造(Cross-Site Request Forgery)中间件。编写一个看起来简单并且小巧的包就足以让你爱上Go处理HTTP的方式。然而,这却取决于我们拥抱标准的HTTP设施或者是粉碎它,牺牲可组性和模块化。 http.Handler是接口 使用特定编程语言编写的web应用程序中的统一HTTP接口,如Python中的WSGI和Ruby中的Rack都是一种很好的想法,但是它们却不总是在一起,例如,Rack在2007年出现的时候,Rails就已经很...阅读全文

CSDN博客 2014-01-03 08:37 rznice

Go 1.4 新特性

Go 1.4 计划9月份冻结代码,12月份发布,目前官方公布的主要改动有: 1、规范:允许 for range x 这种写法 原因:在标准库中,存在这样的写法 // unicode/utf8/utf8.gofunc RuneCountInString(s string) (n int) { for _ = range s { n++ } return} 很显然,这里不关心具体的index或value,同时,既然可以省略 value,为什么不能将 index 也省略。因此,加入了这种语法。这样,上...阅读全文

开源中国博客 2014-11-20 10:00 平凡之路

golang 1.3的新特征和目前进度

原文: 计划中的新特征:http://golang.org/s/go13todo 目前的进展情况:http://talks.golang.org/2014/go1.3.slide golang 1.3代码将在3.1冻结,6.1发布。 1、100% percise GC GC是垃圾回收器,percise GC不知道什么意思,应该是能够提升性能吧 2、copying stack 使用copy stack代替原来的split stack,解决所谓的“hot split”问题。 3、一系列的性能提升: ...阅读全文

开源中国博客 2014-11-20 10:02 平凡之路

WebSocket 和 Golang 实现聊天功能

本文同步至 http://www.waylau.com/go-websocket-chat/ 这个示例应用程序展示了如何使用 WebSocket, Golang 和 jQuery 创建一个简单的web聊天应用程序。这个示例的源代码在 https://github.com/waylau/goChat 。 Running the example 运行示例 这个示例需要 Golang 开发环境。 该页面描述如何安装开发环境。 一旦你去启动和运行,您可以下载、构建和运行的例子, 使用命令: go get...阅读全文

开源中国博客 2014-11-19 08:20 waylau

使用Go语言一段时间的感受

最近在忙一个Server+Client的项目,Client是Android手机,大概也就是几十的规模。Server是纯Go语言实现,没有apache或者ngix这种web server,也没有数据库,自己写了个文件管理module,处理这种小规模的服务没问题。算下来接触Go语言也有四个多月了,断断续续写了一些东西,这里记录一下心得吧。 先大概说下为什么用Go语言。我是一个对语言有洁癖的人,曾经是一个c+Python的坚定呐喊者,最常说的一句话就是,只要熟练这两种,什么情况都能应付,根本不用Jav...阅读全文

CSDN博客 2013-11-12 11:33 denghp83

golang实现的一个小游戏–猜数字

原文同步至:http://www.waylau.com/golang-game-guess-numbe/ 随机生成一个数字,输入一个数字看是否匹对,匹配则结速,反之提示是大了还是小了, 代码如下: package main import ( "bufio" "fmt" "math/rand" "os" "strconv" "time" ) var ( endNum int //设置生成数的范围 ) func main() { i := createRandomNumber(endNum) //f...阅读全文

ITEYE博客 2013-05-06 08:46 kkkloveyou

【GO for java programmers】面向Java开发者的GO编程2

英文原文在此www.nada.kth.se/~snilsson/go_for_java_programmers 译文同步至http://blog.csdn.net/kkkloveyou/article/details/8308534 http://bbs.gocn.im/thread-73-1-1.html ====================接上文,以下正文========================. 条件语句 Go在条件语句中并不使用括号,像 if条件语句 , for 条件语句的表...阅读全文

ITEYE博客 2012-12-17 17:32 kkkloveyou

【Golang】【 Network programming with Go】 Templates(模版)

翻译至http://jan.newmarch.name/go/template/chapter-template.html 第九章 很多编程语言都有字符串之间转换的机制,而GO语言则是通过模板来将一个对象的内容来作为参数传递从而字符串的转换。此方式不仅可以在重写HTML时插入对象值,也适用于其他方面。注意,本章内容并没有明确给出网络的工作方式,但对于网络编程方式很有用处。 Introduction 介绍 大多数服务器端语言的机制主要是在静态页面插入一个动态生成的组件,如清单列表项目。典型的例子是...阅读全文

ITEYE博客 2012-11-24 14:33 kkkloveyou

Go by Example: Hello World

我们第一个程序将打印出经典消息“Hello world”。这里是全部的源码 package main import "fmt" func main() { fmt.Println("hello world") } 为了运行程序,将代码写入 hello-world.go文件。使用go run 命令执行。$ go run hello-world.go hello world 有时候我们想要将我们的程序编译出二进制程序。我们可以使用go build命令实现该功能。 $ go build hello-w...阅读全文

CSDN博客 2014-11-14 21:54 codemanship

golang讲解(go语言)标准库分析之io完结篇

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们继续讲golang标准库的io库,我们今天就把io库就讲完了,所以就不多说了,让给我们的讲解和代码 [1]type Reader [php] type Reader interface { Read(p []byte) (n int, err error) } [/php] (1)func LimitReader(r Reader, n int64) Reader,我们之前就说了Reade...阅读全文

微度网络 2014-01-10 widuu

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

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们继续讲golang的io的标准库 [1]type PipeReader [php] type PipeReader struct { // contains filtered or unexported fields } [/php] (1)func Pipe() (*PipeReader, *PipeWriter)创建一个管道,并返回它的读取器和写入器,这个会在内存中进行管道同步,它的开...阅读全文

Goroutine是如何工作的

Goroutine是如何工作的 十一 15 bigwhite技术志 Channel, Concurrency, Go, Golang, golangweekly, goroutine, parallelism, RobPike, runtime, Thread, 并发, 并行, 栈, 线程, 调度器, 运行时 No Comments 在golangweekly的第36期Go Newsletter中我发现一篇短文"How Goroutines Work" ,其作者在参考了诸多资料后,简短概要地总结...阅读全文

Go语言的有效错误处理

Go语言的有效错误处理 十一 14 bigwhite技术志 error, Go, Golang, Google, Package, RobPike, 包, 错误处理 No Comments 中午闲暇翻看Daniel Morsing的“The Go scheduler”时,发现其另外一篇短文“Effective error handling in Go”,文章不长,但感觉对Go中错误处理方法总结的还是比较到位的,这里译之供大家参考。 一、简介 Go语言受到诟病最多的一项就是其错误处理机制。如果显式...阅读全文

Tony Bai 2014-11-14 bigwhite

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

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们开新的标准库io也是继续上一次我们没有讲完的标准库,上一次我们只说了io/ioutil这次我们继续开讲整个io库 (1)func Copy(dst Writer, src Reader) (written int64, err error)这个函数是从一个文件读取拷贝到另外一个文件,一直拷贝到读取文件的EOF,所以不会返回io.EOF错误,参数是写入目标器和读取目标器,返回int64的拷贝...阅读全文

微度网络 2014-01-08 widuu

go语言写日志

go语言有一个标准库,log,提供了最基本的日志功能,但是没有什么高级的功能,如果需要高级的特性,可以选择glog或log4go。 glog是google提供的,类似于google的c++ log库,使用起来非常简单,下面介绍一下;log4go的用法和log4j一样,可配置性比较高。 glog只提供了少数几个选项,通过命令行控制,例如: -log_dir: 日志文件保存目录 -alsologtostderr: 日志写入文件的同时,输出到stderr -v:配置V输出的等级。 glog使用非常简单...阅读全文

铁哥的博客 2013 年 08 月 09 日 铁哥

go语言的new和make

golang的new和make主要区别如下: 1、make只能用来分配及初始化类型为slice,map,chan的数据;new可以分配任意类型的数据 2、new分配返回的是指针,即类型*T;make返回引用,即T; 3、new分配的空间被清零,make分配后,会进行初始化。effective go举了一个例子,见:http://golang.org/doc/effective_go.html#allocation_make 对于struct的分配和初始化,除了可以使用new外,还可以这样做: T...阅读全文

铁哥的博客 2013 年 08 月 08 日 铁哥

Golang测试技术

本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术(并发测试、mock/fake、竞争条件测试、并发测试、内/外部测 试、vet工具等)等,感觉总结的很全面,这里整理记录下来,希望能给大家带来帮助。原Slide访问需要自己搭梯子。另外这里也要吐槽一 下:Golang官方站的slide都是以一种特有...阅读全文

开源中国博客 2014-11-16 20:20 大蓝妹

golang讲解(go语言)标准库分析之os/user os/signal (os包完结篇)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们讲golang os包的最后两个包user、signal os/user包 (1)type UnknownUserError string其中这个里边有一个方法func (e UnknownUserError) Error() string返回木有用户的错误信息 [php] import ( "fmt" "os/user" ) func main() { var err user.Unkn...阅读全文

Go语言实现简单的一个静态WEB服务器

Android SDK的文档直接打开的话会很慢,而且不支持搜索。所以,本地搭建静态服务器是必要的。以下为引用的其他博客的资源,感谢作者。 首先,搭建一个静态的服务器 我写程序喜欢使用HTML通过AJAX发送JSON请求到后端处理。 HttpServer.go 代码如下: package main import ( "flag" "io/ioutil" "log" "net/http" "os" "strings" ) var realPath *string func staticResourc...阅读全文

开源中国博客 2014-11-16 10:20 itfanr