【发布时间】:2019-07-10 17:25:28
【问题描述】:
在我下面的代码中,为什么*bikeSlice[0].Type 将Type 字段的值而不是内存地址返回给我?为什么*bikeSlice[0] 返回{Type:0xc0000641c0} 虽然*bikeSlice[0].Type 似乎自动取消引用Type 字段?
package main
import "fmt"
type Bike struct {
Type *string
}
func main() {
type1 := "road"
bike1 := Bike{
Type: &type1,
}
type2 := "mountain"
bike2 := Bike{
Type: &type2,
}
var bikeSlice []*Bike
bikeSlice = append(bikeSlice, &bike1)
bikeSlice = append(bikeSlice, &bike2)
fmt.Printf("%+v\n", *bikeSlice[0])
fmt.Printf("%+v", *bikeSlice[0].Type)
}
游乐场:https://play.golang.org/p/2Q4Bt60SUdW
输出:
{Type:0x40e128}
road
【问题讨论】: