Ich habe folgenden Code:Wie beliebigen Wert einstellen Schnittstelle {}
package main
import (
"fmt"
)
type Point struct {
x,y int
}
func decode(value interface{}) {
fmt.Println(value) // -> &{0,0}
// This is simplified example, instead of value of Point type, there
// can be value of any type.
value = &Point{10,10}
}
func main() {
var p = new(Point)
decode(p)
fmt.Printf("x=%d, y=%d", p.x, p.y) // -> x=0, y=0, expected x=10, y=10
}
I-Wert eines beliebigen Typs auf den Wert decode
Funktion übergeben festlegen möchten. Ist es in Go möglich, oder ich missverstehe etwas?
http://play.golang.org/p/AjZHW54vEa
Go Pass-by-Wert . Wenn Sie einer lokalen Variablen etwas zuweisen, wirkt sich dies nie auf das Äußere aus. Sie können einen Referenztyp (wie einen Zeiger) verwenden, um das Objekt, auf das es zeigt, zu mutieren, um den Status zu teilen. aber dann würde es einen Zeiger des richtigen Typs benötigen, damit Sie etwas dem Ding zuweisen können, auf das es zeigt. – newacct