其目的是为了能够存储查询的“临时”实例,以便能够稍后派生它们。也就是说,如果你有一些共享序列的某些部分的查询,你应该能够做到像

q := gorm.Select(...).Limit(...).Order(...) 
q1 := q.Where(...) 
q2 := q.Where(...) 

(这个例子是一个rought例如,可能甚至不映射到GORM API,因为我自己并不使用它。)

现在,我认为克隆对象不会太长,不会影响执行SQL查询的成本,这意味着网络往返...