存取Golang 類型介面{} 中的匿名結構體值
您在存取傳遞給NewJob 函數的匿名結構體時遇到問題從自訂功能。您遇到的錯誤「interface {} 是沒有方法的介面」表示您正在使用的 interface{} 類型沒有定義的方法,因此無法直接存取欄位。
To要解決此問題,您需要將interface{}值類型斷言為相容類型,例如您的資料所屬的匿名結構。這樣做可以讓您進入您想要的領域。以下是調整後的程式碼:
<code class="go">func Custom(name string) interface{} { for i := range jobs { if jobs[i].name != name { continue } return jobs[i].custom } return nil } ... id := t.(struct{Id int}).Id</code>
在上面的程式碼中,我們向具有名為 Id 的欄位的結構體鍵入assert t。這允許我們直接存取 Id 字段,現在返回預期結果 1。
以上是如何在 Golang 中的'interface{}”中存取匿名結構體值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!