如题,
package main
import (
"io"
"net/http"
)
type a struct{}
func (*a) ServeHTTP(w http.ResponseWriter, r *http.Request) {
path := r.URL.String() //获得访问的路径
io.WriteString(w, path)
}
func main() {
http.ListenAndServe(":8080", &a{})//第2个参数需要实现Hander接口的struct,a满足
}
今天刚刚开始学 go 语言,有很多不懂的地方,路过的大神快救救我
这里定义了一个type a struct{} 为什么要定一个这样的type ?
为什么listenANDserve是 a 的地址,而不是a的指针?
func (*a) 这样写了以后为什么会认为 a 是一个实现了ServeHTTP 的struct?
这样写就像C里面的typedef一样,定义了一个类型struct{},起了个名字叫a
2.你的意思是指针和地址不是一个概念吗?实际在这里既不是a的地址,也不是a的指针。它实际是a类型的初始化了的一个变量(这里说变量不太准确)的地址(也就是指针)
3.语法,这样写有点像c++里面在类外定义成员函数一样