go语言的基础语法请教

如题,

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?

查看回复