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

当 DefaultHandler 是一个结构时, (*DefaultHandler)的含义是什么?

当 DefaultHandler 是一个结构时, (*DefaultHandler)的含义是什么?

Go
慕标琳琳 2023-07-10 16:27:04
*DefaultHandler我可以理解最后一行代码的全部含义:它提供了满足接口的静态(编译时)检查EasygateHandler。但我不明白这是什么意思(*DefaultHandler)(nil)以及有什么区别(*DefaultHandler)()type DefaultHandler struct {    log logrus.FieldLogger    svc *service.DefaultResolver}var _ easygate.EasygateHandler = (*DefaultHandler)(nil)
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

该表达式(*DefaultHandler)(nil)是从无类型 nil 到类型 0 值的转换*DefaultHandler

转换采用以下形式T(x): 是T类型 ,x是可以转换为 类型 的值T。在此示例中,Tis*DefaultHandlerxis nil*DefaultHandler需要使用括号来区分到指针类型的转换和到非指针类型的转换的取消引用。

该表达式(*DefaultHandler)()不是有效的 Go 语法。

如果该值是具有复合文字语法的类型,&DefaultHandler{}则也可以使用该值。DefaultHandler转换模式适用于所有类型。


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信