为了账号安全,请及时绑定邮箱和手机立即绑定

为何两次注册handler的方法不同?

http.Handle("/video/",http.StripPrefix("/video/",fileHandler))
http.HandleFunc("/api/upload",uploadHandler)

为什么两次使用的注册方法不同呢?

正在回答

1 回答

HandleFunc传入的第二个参数是一个函数,Handle传入的是一个实现了Handler接口的结构体。内部实现的时候,这个传入的参数当然会被统一成一个接口,但是函数不是接口,所以需要做内部的转型,给函数绑定一个方法,然后调用函数自己(这个算是go比较巧妙的用法)。其实HandleFunc内部的实现很简单,最后也是调用Handle。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为何两次注册handler的方法不同?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信