Go 允許函數參數保持未命名,這最初可能看起來令人困惑。不過這個功能有多種用途,而且有明確的語法規則。
依據 Go 規範,ParameterDecl(參數聲明)是:
ParameterDecl = [ IdentifierList ] [ "..." ] Type .
IdentifierList(識別名稱或名稱)是可選的,表示只有Type是必需.
為什麼使用未命名參數?
未命名參數通常用於以下場景:
語法規則
不允許混合命名和未命名參數。如果某些參數已命名,則所有參數都必須命名。或者,空白標識符 (_) 可用來指示不應引用參數。
範例
考慮MyWriter 介面:
type MyWriter interface { Write(p []byte) error }
丟棄資料的此介面的實作可以寫如下:
type DiscardWriter struct{} func (DiscardWriter) Write([]byte) error { return nil }
DiscardWriter
類型有一個未命名參數,因為它不使用傳遞給 Write 方法的參數。 總而言之,未命名函數參數Go 在處理存在但未使用的參數時提供靈活性和清晰度。它們促進介面實現,記錄未使用的參數,並允許未來擴展而不破壞向後相容性。以上是何時以及為何在 Go 中使用未命名函數參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!