Golang Zeiger

Ich bin derzeit lernen zu Programmieren, Gehen mit Sprache.
Ich habe einige Schwierigkeiten Verständnis Zeiger Gehen (und meine C/C++ ist weit Weg jetzt...).
Bei der Tour von Go #52 (http://tour.golang.org/#52) zum Beispiel, ich lese:

type Vertex struct {
    X, Y float64
}

func (v *Vertex) Abs() float64 {
    return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

func main() {
    v := &Vertex{3, 4}
    fmt.Println(v.Abs())
}

Aber, wenn anstelle von

func (v *Vertex) Abs() float64 {
[...]
v := &Vertex{3, 4}

Schrieb ich:

func (v Vertex) Abs() float64 {
[...]
v := Vertex{3, 4}

Oder auch:

func (v Vertex) Abs() float64 {
[...]
v := &Vertex{3, 4}

werden, und Umgekehrt:

func (v *Vertex) Abs() float64 {
[...]
v := Vertex{3, 4}

Bekam ich genau das gleiche Ergebnis. Gibt es einen Unterschied (Speicher-Weise, etc.)?

InformationsquelleAutor der Frage merlin Gaillard | 2013-02-26

Schreibe einen Kommentar