自分が一瞬 うん?となることがあるのでメモ
一瞬は言い過ぎか。
*t.a+*t.b=5
*T result=&{2 3}
t.a + t.b=5
T result=&{1 2}
参照か、実体か。一度理解すれば問題無いんですけどね。
一瞬は言い過ぎか。
■ code
package main
import (
"fmt"
)
type T struct{ a, b int }
func (t T) addRef() {
t.a++
t.b++
fmt.Printf("t.a + t.b=%v\n", t.a+t.b)
return
}
func (t *T) add() {
t.a++
t.b++
fmt.Printf("*t.a+*t.b=%v\n", t.a+t.b)
return
}
func main() {
var t *T = new(T)
var t2 *T = new(T)
t.a = 1
t2.a = 1
t.b = 2
t2.b = 2
t.add()
fmt.Printf(" *T result=%v\n", t)
t2.addRef()
fmt.Printf(" T result=%v\n", t2)
}
■ result
go run main.go*t.a+*t.b=5
*T result=&{2 3}
t.a + t.b=5
T result=&{1 2}
参照か、実体か。一度理解すれば問題無いんですけどね。
0 件のコメント :
コメントを投稿