摘要:Go语言提供了完善的单元测试支持,开发人员可以方便的编写测试代码,保证自己代码的质量。在目前的例子中,一般看到都是普通函数的例子。下面我将通过类方法的单元测试例子来展示一下Go语言的魅力。首先是代码所在的文件xml.go:package myxmlimport ( "encoding/xml")ty...
阅读全文
摘要:最近正在用Go语言做一个项目,今天在用http包读取客户端发过来的POST数据时遇到了一点小麻烦,就下面这段代码,死活读不到数据:if r.ContentLength > 0 { var body []byte nRead, err := r.Body.Read(body) if err != nil { fmt.Println(err.Error()) }}返回的错误值是EOF。通过检查header信息,发现content-type是application/x-www-form-urlencoded。检查Request信息也发现Conten...
阅读全文
摘要:func GetPostResponse(url, bodyType string, body *[]byte) (rdata []byte, err error) { b := bytes.NewBuffer(*body) var r *http.Response r, err = http.Post(url, bodyType, b) if err == nil { rbody := (*r).Body defer rbody.Close() var nRead int nRead, err = rbody.Read(rdata) if err != nil { Debug(...
阅读全文
摘要:Go语言里的传值与传引用大致与C语言中一致,但有2个特例,map和channel默认传引用,也就是说可以直接修改传入的参数,其他的情况如果不用指针的话,传入的都是参数的副本,在函数中修改不会改变调用者中的变量值。简单的做了一个例子:package mainimport "fmt"func main() { fmt.Println("Hello from Go start") var sVal string var sRef string var dVal []byte var dRef []byte var mVal map[string]string
阅读全文