Vorbei Zeiger durch den Kanal in Go Lang
Ist es möglich, pass Mauszeiger über Kanal lang gehen? Ich übergeben zu müssen, struct, haben Veränderungen in der it und haben diese änderungen in die gleiche Funktion aus, wo struct übergeben wurde?
Versuchte ich
chan <- &data
und ich bekam
# command-line-arguments .\o.go:130: cannot use &duom[i] (type *KaVartoti) as type KaVartoti in send
danach habe ich versucht
chan <- *data
und ich bekam
# command-line-arguments .\o.go:130: invalid indirect of duom[i] (type KaVartoti)
So, es ist möglich, senden Mauszeiger durch den Kanal in Go ir nicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicher, dass Sie können, z.B.
Finden Sie in Gehen Spielplatz.
Den Fehler, den Sie erhalten, erzählt Sie, dass Ihr Kanal dauert eine KaVartoti struct, müssen Sie, um einen Kanal von KaVartoti Zeiger (eine
chan *KaVartoti
).Vermutung, Ihre
duom
- variable ist ein array, slice, so dass, wenn Sie senden möchten ein Zeiger auf eines der Elemente, die Sie verwenden würden, Ihr Erster Ansatz von&duom[i]
goroutine
wie hier, macht, dass der Kanal ein 1-Weg, 1 Weg, out channel. IOW, versuchen Sie nicht, dieses gleichzeitig durch Durchlaufen und das senden mehrerer Werte an den channel: Sie werden nicht wieder jene Werte in der gleichen Reihenfolge. Aber durch die Sperrung auf erhalten jeweils, wie in hier in der Hauptsache, wäre ok, wenn das ist Ihre Anwendung.Überprüfen Sie Folgendes Beispiel: