我一直在学习GO Lang一个月。我在java中编写了4年多。在Java中,Request和Response都是对象引用。但是,当谈到GoLang时,Response是一个对象引用,Request是一个指针引用。为什么请求是一个指针变量?为什么不是参考变量?
引用,就像一个指针,是一个可以用来间接引用另一个对象的对象。引用声明与指针声明基本上具有相同的语法结构。
func hello(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Hello world!")
}
除了可读性和语法糖之外,还有其他一些使用Request作为指针变量的意图。
添加到上面的问题,这里的请求是一个任意的指针。即该请求尚不存在,但该指针已经指向一个存储位置。如果我的理解错误,请抛出一些光。
golang中只有指针没有引用。并且所有参数都按值传递。 – zzn
@zzn我并不期待客观的答案。你能否花一些宝贵的时间来阐述一下? – dataEnthusiast
@zzn谢谢,我得到了资源https://kuree.gitbooks.io/the-go-programming-language-report/content/26/text.html – dataEnthusiast