From 0a9689879a8c2a1f53b1d3a7981959ed4b2b5038 Mon Sep 17 00:00:00 2001 From: demoManito <1430482733@qq.com> Date: Tue, 23 Aug 2022 22:44:23 +0800 Subject: [PATCH] support scan assign slice cap --- scan.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scan.go b/scan.go index 2db43160..def63c17 100644 --- a/scan.go +++ b/scan.go @@ -248,7 +248,11 @@ func Scan(rows Rows, db *DB, mode ScanMode) { if !update || reflectValue.Len() == 0 { update = false - db.Statement.ReflectValue.Set(reflect.MakeSlice(reflectValue.Type(), 0, 20)) + sliceCap := reflectValue.Cap() + if sliceCap <= 0 { + sliceCap = 20 + } + db.Statement.ReflectValue.Set(reflect.MakeSlice(reflectValue.Type(), 0, sliceCap)) } for initialized || rows.Next() {