gendry icon indicating copy to clipboard operation
gendry copied to clipboard

scanner.Scan返回错误码

Open leaftree opened this issue 3 years ago • 3 comments

https://github.com/didi/gendry/blob/master/scanner/scanner.go#L94

如果scan不到数据,并且入参是slice,为什么返回错误码返回nil而不是返回ErrEmptyResult呢

leaftree avatar Aug 27 '21 09:08 leaftree

对于一个结构体,如果不返回错误,你无法知道查询结果真的就是各个field都是0值还是没查询到,所以需要返回一个ErrEmptyResult 对于slice,你判断len(target) > 0 就知道是否是empty了。

caibirdme avatar Aug 28 '21 02:08 caibirdme

感谢你的回复! 对于target是slice的时候,如果我们能够只使用err这个条件来判断就好了。 期望在 len(target)==0 的时候Scan函数也返回ErrEmptyResult。

leaftree avatar Aug 30 '21 01:08 leaftree

这样不太合理,因为每个人的使用场景都不一样,你可以增加一个封装判断leng == 0 然后返回 ErrEmptyResult

感谢你的回复! 对于target是slice的时候,如果我们能够只使用err这个条件来判断就好了。 期望在 len(target)==0 的时候Scan函数也返回ErrEmptyResult。

andotorg avatar Sep 19 '23 03:09 andotorg