[英]What does this snippet of Go do? Is it inheritance?
我正在閱讀有關使用Bazil / Fuse使用Go制作文件系統的教程 。
在本教程中,我將以以下示例為例(特別是獲取文件系統的根):
var _ fs.FS = (*FS)(nil)
func (f *FS) Root() (fs.Node, fuse.Error) {
n := &Dir{
archive: f.archive,
}
return n, nil
}
我不理解的特定行是第一行。 那實際上是在做什么? 我相信,如果不包括該行,則可以根據需要為該方法創建簽名-如果添加了該行,則必須匹配其特定簽名才能覆蓋。
有人可以確切解釋此行的用途以及何時使用它嗎?
這行代碼是一個編譯時斷言,表明*FS
類型滿足fs.FS
接口。 如果斷言不正確,則編譯器將報告錯誤:
*FS does not implement fs.FS (missing <method name> method)
這樣的行的典型用法是確保類型滿足某些接口,並且程序包中沒有其他代碼依賴於滿足接口的類型。
該行對程序的執行沒有影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.