From c4c9aa45e32efaf5d63cb7ac9ce66fcca5fc7c00 Mon Sep 17 00:00:00 2001 From: jessetang <1430482733@qq.com> Date: Sat, 9 Mar 2024 17:39:01 +0800 Subject: [PATCH] fix(scan.go): reflect.MakeSlice passes in the reflect.Array type (#6880) --- scan.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/scan.go b/scan.go index 736db4d3a..54cd6769d 100644 --- a/scan.go +++ b/scan.go @@ -274,12 +274,14 @@ func Scan(rows Rows, db *DB, mode ScanMode) { if !update || reflectValue.Len() == 0 { update = false - // if the slice cap is externally initialized, the externally initialized slice is directly used here - if reflectValue.Cap() == 0 { - db.Statement.ReflectValue.Set(reflect.MakeSlice(reflectValue.Type(), 0, 20)) - } else if !isArrayKind { - reflectValue.SetLen(0) - db.Statement.ReflectValue.Set(reflectValue) + if !isArrayKind { + // if the slice cap is externally initialized, the externally initialized slice is directly used here + if reflectValue.Cap() == 0 { + db.Statement.ReflectValue.Set(reflect.MakeSlice(reflectValue.Type(), 0, 20)) + } else { + reflectValue.SetLen(0) + db.Statement.ReflectValue.Set(reflectValue) + } } }