Как заполнить структуру без дублей, golang
Не удается заполнить второй массив структур штрихкодами. В чем может быть дело?
package main
import "fmt"
type Stor struct {
Store_id string
Goods []Good
}
type Good struct {
GoodsId string
BarCodes []BarCodes
}
type BarCodes struct {
BarCode string
}
func (storage *Stor) GetGoodById(goodid string) (*Good, bool) {
for _, good := range storage.Goods {
if good.GoodsId == goodid {
return &good, true
}
}
good := Good{
GoodsId: goodid,
}
arrGoods := &storage.Goods
*arrGoods = append(*arrGoods, good)
for _, good := range storage.Goods {
if good.GoodsId == goodid {
return &good, true
}
}
return &Good{}, false
}
func (goodst *Good) AddBarCode(barcode string) string {
for _, bcode := range goodst.BarCodes {
if bcode.BarCode == barcode {
return "finded"
}
}
bc := BarCodes{
BarCode: barcode,
}
arrBarCodes := &goodst.BarCodes
*arrBarCodes = append(*arrBarCodes, bc)
return "new"
}
func AppendStr(st *Stor, idvalue string, barcode string) {
good := Good{}
if goodch, ok := st.GetGoodById(idvalue); ok {
good = *goodch
}
status := good.AddBarCode(barcode)
fmt.Println(barcode, status)
}
func main() {
st := Stor{
Store_id: "123456789",
}
AppendStr(&st, "76549", "8888888")
AppendStr(&st, "76551", "1111111")
AppendStr(&st, "76549", "8888888")
AppendStr(&st, "76549", "2222222")
// AppendStr(&st, "76789", "7777777")
// AppendStr(&st, "76551", "5555555")
// AppendStr(&st, "76549", "3333333")
fmt.Println(st)
}
Товары заполняться, но без штрихкодов {123456789 [{76549 []} {76551 []}]}