【发布时间】:2018-08-04 17:01:51
【问题描述】:
这是我的代码:
candles := make([]*base.OHLCVItem, 100)
for i, item := range msgStrSl {
newCandle, err := parseCandleFromString(item)
newCandle.Pair = pair
newCandle.Timeframe = timeframe
if err != nil {
bWsLog.WithError(err).Errorf("Failed to parse candle %d.", i)
continue
}
if newCandle == nil {
panic("nil candle")
}
candles = append(candles, newCandle)
bWsLog.Infof("Sn candle: %d", candles[len(candles)-1].Timestamp)
}
bWsLog.Info(candles[0])
bWsLog.Info(candles[1])
sort.SliceStable(candles, func(i, j int) bool {
bWsLog.Infof("%d %+v %+v", len(candles), candles[i], candles[j])
return candles[i].Timestamp < candles[j].Timestamp
}
循环后的日志表明该值为 nil。 但是在循环内记录会打印对象(因此此时它不是零) 我是 Go 新手,我可以弄清楚为什么在循环结束后 slice 中的所有元素都变成了 nil 。 你能帮我解决这个问题吗?
【问题讨论】:
标签: loops pointers go null slice