*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 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消