From f6d9ee795984dc500861165bb8747f00be36de46 Mon Sep 17 00:00:00 2001 From: demoManito <1430482733@qq.com> Date: Mon, 11 Mar 2024 12:05:02 +0800 Subject: [PATCH] fix(scan): array element is set to a zero value --- scan.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scan.go b/scan.go index 54cd6769..1c161a20 100644 --- a/scan.go +++ b/scan.go @@ -274,7 +274,11 @@ func Scan(rows Rows, db *DB, mode ScanMode) { if !update || reflectValue.Len() == 0 { update = false - if !isArrayKind { + if isArrayKind { + for i := 0; i < reflectValue.Len(); i++ { + reflectValue.Index(i).Set(reflect.Zero(reflectValue.Index(i).Type())) + } + } else { // 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))