所以我有以下两种方法:
func Marshal(in interface{}) (out []byte, err error)
func readDocument(r io.Reader) ([]byte, error)
在我的代码中,我执行以下操作:
queryDoc, err := readDocument(client) // querydoc is slice of len 408
if something {
queryDoc, err := bson.Marshal(something)
newDocLen := len(queryDoc) // len is now 200
}
len(queryDoc) // len is 408????
出于某种原因,queryDoc 不会随着解组而更新。但是,如果我分配给一个中间值,它会起作用:
queryDoc, err := readDocument(client) // querydoc is slice of len 408
if something {
q, err := bson.Marshal(something)
queryDoc = q
newDocLen := len(queryDoc) // len is now 200
}
len(queryDoc) // len is 200
由于我在第一个示例中将返回值分配给 queryDoc,变量 queryDoc 现在不应该引用新数组吗?
慕尼黑5688855
相关分类