Heim >Backend-Entwicklung >Golang >Wie kann der Fehler „Ungültiger rekursiver Typ Tarea' behoben werden, wenn versucht wird, „subtareas' in Go zu einem Zeiger auf „ListaDeTareas' zu machen?

Wie kann der Fehler „Ungültiger rekursiver Typ Tarea' behoben werden, wenn versucht wird, „subtareas' in Go zu einem Zeiger auf „ListaDeTareas' zu machen?

王林
王林nach vorne
2024-02-11 12:30:09471Durchsuche

当尝试在 Go 中使 `subtareas` 成为指向 `ListaDeTareas` 的指针时,如何修复 `invalid recursive type Tarea` 错误?

Wenn wir bei der Verwendung der Go-Sprache versuchen, „subtareas“ als Zeiger auf „ListaDeTareas“ zu deklarieren, kann der Fehler „ungültiger rekursiver Typ Tarea“ auftreten. Dies liegt daran, dass die Go-Sprache einige Einschränkungen bei der Verarbeitung rekursiver Typen aufweist, was einige Reparaturen erfordert. Es gibt viele Möglichkeiten, dieses Problem zu lösen. Wir können Schnittstellentypen oder Strukturverschachtelungen verwenden, um dieses Problem zu lösen. Im Folgenden werde ich detailliert beschreiben, wie dieser Fehler behoben werden kann.

Frageninhalt

Ich benötige Subtareas in der Struktur Tarea als Zeiger auf Listadetareas, aber es funktioniert nicht. Ich habe invalid 递归类型 tarea

type Tarea struct {
    nombre    string
    duracion  float32

    subtareas *ListaDeTareas
}

type ListaDeTareas[T Tarea] struct {
    elementos listadetareas.LinkedList[Tarea]
}

Lösung

Du scheinst nicht hier zu sein listadetareas 中使用类型参数 t. Durch Entfernen wird das Problem gelöst.

type Tarea struct {
    nombre    string
    duracion  float32

    subtareas *ListaDeTareas
}

type ListaDeTareas struct {
    elementos listadetareas.LinkedList[Tarea]
}

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Ungültiger rekursiver Typ Tarea' behoben werden, wenn versucht wird, „subtareas' in Go zu einem Zeiger auf „ListaDeTareas' zu machen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen