為什么這個:obj := *g
return &obj, nil不等于這個:return &(*g), nil它不應該以相同的方式工作嗎(返回指向新內(nèi)存區(qū)域的指針以及來自g結構的數(shù)據(jù))?
2 回答

慕容森
TA貢獻1853條經(jīng)驗 獲得超18個贊
我不相信這是不一樣的。
package main
import "fmt"
type G struct {
}
func foo(g *G) (*G, error) {
? return &(*g), nil
}
func bar(g *G) (*G, error) {
? obj := (*g)
? return &obj, nil
}
func main() {
? g := &G{}
? a, _ := foo(g)
? b, _ := bar(g)
? fmt.Printf("a: %p, b: %p\n", a, b)? // gives the same pointer value
}
- 2 回答
- 0 關注
- 135 瀏覽
添加回答
舉報
0/150
提交
取消