golang - go语言的基础语法请教

查看:121
本文介绍了golang - 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?

解决方案

  1. 这样写就像C里面的typedef一样,定义了一个类型struct{},起了个名字叫a

2.你的意思是指针和地址不是一个概念吗?实际在这里既不是a的地址,也不是a的指针。它实际是a类型的初始化了的一个变量(这里说变量不太准确)的地址(也就是指针)

3.语法,这样写有点像c++里面在类外定义成员函数一样

这篇关于golang - go语言的基础语法请教的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆