*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
。在此示例中,T
is*DefaultHandler
和x
is nil
。*DefaultHandler
需要使用括号来区分到指针类型的转换和到非指针类型的转换的取消引用。
该表达式(*DefaultHandler)()
不是有效的 Go 语法。
如果该值是具有复合文字语法的类型,&DefaultHandler{}
则也可以使用该值。DefaultHandler
转换模式适用于所有类型。
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消