When running this program:

package main

import (
"fmt"
)

type Foo struct {
i int
}

func main() {
var f1 = &Foo{i: 0}
var f2 = &(*f1)
f2.i = 1
fmt.Println(f1, f2)
}

it yields:

&{1} &{1} 

(https://play.golang.org/p/qKtURokUCEW)

I (naively) assumed that the expression

&(*f1) 

would, first, create a copy of *f1, and then a pointer to that copy, but 
evidently f2 becomes a pointer to the same struct as f1. Is this something 
I should have deduced from the language spec?

best regards Christian Surlykke


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/f427ddf6-f4fc-42f4-bee8-d1dab0fef566n%40googlegroups.com.

Reply via email to