首頁 > 後端開發 > Golang > 如何解決Go Structs中的「Invalid Recursive Type」錯誤?

如何解決Go Structs中的「Invalid Recursive Type」錯誤?

Patricia Arquette
發布: 2024-12-02 17:52:11
原創
130 人瀏覽過

How to Resolve the

Go 中結構體中的無效遞歸類型

問題陳述

在 Go中,使用遞歸類型定義結構體可能會導致「無效」遞歸類型」錯誤。當結構體包含與結構體本身類型相同的欄位時,會發生此錯誤。

例如,下列結構體定義無效:

type Environment struct {
    parent Environment
    symbol string
    value  RCFAEValue
}
登入後複製

原因

發生錯誤的原因是編譯器無法確定結構的大小。此問題,您需要將父欄位設定為指標:

這確保環境結構的大小已知,並允許編譯器繼續編譯。所示:

type Environment struct {
    parent *Environment // note that this is now a pointer
    symbol string
    value  RCFAEValue
}
登入後複製
透過使用& 運算符,您將取得fun_Val.ds變數的位址並分配它到父字段,類型為*Environment。

以上是如何解決Go Structs中的「Invalid Recursive Type」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板