在 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中文網其他相關文章!