我有一个看起来像这样的结构:
type BetaKey struct {
Id int64 `json:"-"`
IssuerId int64 `json:"-" db:"issuer_id"`
SubjectEmail string `json:"-" db:"subject_email"`
IssuedTime int64 `json:"-" db:"issued_time"`
ExpiryTime int64 `json:"expiryTime" db:"expiry_time"`
Betakey string `json:"accessKey"`
Description string `json:"description"`
}
在同一个包中,我有一个返回切片的函数BetaKey:
func buildResults(query string) ([]BetaKey, error) {
results := []BetaKey{}
rows, err := sql.DB.Queryx(query)
if err != nil {
return results, err
}
defer rows.Close()
for rows.Next() {
var bk BetaKey
err := rows.StructScan(&bk)
if err != nil {
return results, err
}
results = append(results, bk)
}
err = rows.Err()
if err != nil {
return results, err
}
return results, nil
}
我是否可以重写此函数,以便它接受查询字符串和BetaKeyas类型interface{},并返回一个切片,interface{}以便我可以重用代码而不是将其复制粘贴到每个包中,因为它实际上是相同的但唯一的区别是改变的结构的名称。
这可能吗?这也是建议吗?如果不是,那为什么?
摇曳的蔷薇
白猪掌柜的
相关分类