變數賦值中空白標識符的用途
在諸如var _ PropertyLoadSaver = (*Doubler)(nil) 之類的變數宣告中,空白標識符有特定的用途。這個建構是一個編譯時斷言,*Doubler 類型實作了 PropertyLoadSaver 介面。
在 Go 中,當類型提供的方法集超過或匹配介面的方法集時,它就實作了介面。如果*Doubler 類型不滿足此條件,編譯器將拋出類似於以下內容的錯誤:
prog.go:21: cannot use (*Doubler)(nil) (type *Doubler) as type PropertyLoadSaver in assignment: *Doubler does not implement PropertyLoadSaver (missing Save method)
此空白標識符技術涉及聲明PropertyLoadSaver 類型的未命名變量,然後為其分配nil 值透過表達式(*Doubler)(nil) 輸入Doubler。僅當 Doubler 實作 PropertyLoadSaver 介面時,此指派才有效。
空白標識符強調了該變數不會在套件中的其他位置引用的事實。類似地,以下行得到相同的結果,但具有非空白標識符:
var assertStarDoublerIsPropertyLoadSaver PropertyLoadSaver = (*Doubler)(nil)
以上是Go 介面斷言中空白標識符的用途是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!