Ich muss eine Schnittstelle eines Strukturtyps durch Referenz übergeben, wie unten gezeigt. Da ich Zeiger der Schnittstelle zu Variablen des Strukturtyps nicht verwenden kann, wie soll ich den folgenden Code ändern, um te
Wert zu 10
zu ändern?Wie Schnittstelle von Strukturtyp durch Verweis in Golang übergeben?
package main
import (
"fmt"
)
func another(te *interface{}) {
*te = check{Val: 10}
}
func some(te *interface{}) {
*te = check{Val: 20}
another(te)
}
type check struct {
Val int
}
func main() {
a := check{Val: 100}
p := &a
fmt.Println(*p)
some(p)
fmt.Println(*p)
}
Vielen Dank!
P.S Ich habe gelesen, dass die Weitergabe von Zeigern an Schnittstellen keine sehr gute Praxis ist. Bitte lassen Sie mich wissen, was könnte ein besserer Weg sein, damit umzugehen
Go hat keine Ahnung von Pass durch Referenz. – Volker
@Volker: Entschuldigung für den Missbrauch des Begriffs, aber ich hoffe, Sie haben meine Absicht der Frage – re3el
Um etwas Ähnliches wie Pass-by-Referenz in gehen, müssen Sie Zeiger verwenden. –