feat(gconv): Add OmitEmpty and OmitNil options to Scan function #4584
+159
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
改进内容
ScanOption/StructOption结构体,添加OmitEmpty bool字段:当设置为 true 时,跳过空值(如空字符串、零值等)的赋值;添加OmitNil bool字段:当设置为 true 时,跳过 nil 值的赋值;ScanWithOptions函数,支持通过ScanOption参数使用新选项Scan函数行为完全不变NewConverter创建的转换器也支持新功能使用示例
基本用法
后续可以将
func Scan(srcValue any, dstPointer any, paramKeyToAttrMap ...map[string]string) (err error)和func ScanWithOptions(srcValue any, dstPointer any, option ...ScanOption) (err error)直接用func Scan(srcValue any, dstPointer any, option ...ScanOption) (err error)代替,ScanOption里已经包含了paramKeyToAttrMap map[string]string