Go - get父结构

eou*_*uti 2 structure go

我想知道如何检索实例的父结构.
我不知道如何实现这一点.

例如:

type Hood struct {
    name string
    houses  []House
}

type House struct {
    name   string
    people int16
}

func (h *Hood) addHouse(house House) []House {
    h.houses = append(h.houses, house)
    return h.houses
}

func (house *House) GetHood() Hood {
    //Get hood where the house is situated
    return ...?
}
Run Code Online (Sandbox Code Playgroud)

干杯

Sim*_*tti 9

你应该保留一个指向引擎盖的指针.

type House struct {
    hood   *Hood
    name   string
    people int16
}
Run Code Online (Sandbox Code Playgroud)

当你追上房子的时候

func (h *Hood) addHouse(house House) []House {
    house.hood = h
    h.houses = append(h.houses, house)
    return h.houses
}
Run Code Online (Sandbox Code Playgroud)

然后你可以轻松改变GetHood,虽然此时可能不需要吸气剂.

func (house *House) GetHood() Hood {
    return *house.hood
}
Run Code Online (Sandbox Code Playgroud)