我的扫描未更新其目标变量。我有点让它与:
ValueName := reflect.New(reflect.ValueOf(value).Elem().Type())
但我不认为它以我想要的方式工作。
func (self LightweightQuery) Execute(incrementedValue interface{}) {
existingObj := reflect.New(reflect.ValueOf(incrementedValue).Elem().Type())
if session, err := connection.GetRandomSession(); err != nil {
panic(err)
} else {
// buildSelect just generates a select query, I have test the query and it comes back with results.
query := session.Query(self.buildSelect(incrementedValue))
bindQuery := cqlr.BindQuery(query)
logger.Error("Existing obj ", existingObj)
for bindQuery.Scan(&existingObj) {
logger.Error("Existing obj ", existingObj)
....
}
}
}
两条日志消息完全相同Existing obj &{ 0 0 0 0 0 0 0 0 0 0 0 0}(空格是字符串字段。)这是因为大量使用反射来生成新对象吗?在他们的文档中,它说我应该var ValueName type用来定义我的目的地,但我似乎无法通过反射来做到这一点。我意识到这可能很愚蠢,但即使只是指出我进一步调试的方向也会很棒。我的围棋技巧非常缺乏!
侃侃无极
相关分类