我有一个(*sql.Rows, error)在Go中返回的函数。在某些情况下,没有任何返回值,但是也没有错误。选择似乎是:
if (...) {
return nil, nil
}
然后,在调用方中:
rows, err := fn()
if err != nil {
return nil, err
}
if rows == nil {
...
} else {
for rows.Next() {
...
}
}
否则返回一个特殊的错误,然后我检查。我认为如果可以返回一个有效的Rows实例,将会更加优雅,但是除了Next()调用它的方法时返回false之外,它什么也没有做,就像这样:
if (...) {
return EmptyRows(), nil
}
并且,在呼叫者中:
rows, err := fn()
if err != nil {
return nil, err
}
for rows.Next() {
...
}
我可以做类似的事情:
if (...) {
return db.QueryRows("select * from something where true=false"), nil
}
但这似乎很愚蠢。有什么建议吗?
白衣染霜花
相关分类