在 Go 中,是否有一种使用反射来获取字段标记的好方法,只需将字段包装在反射库中的函数中?
我基本上是在尝试创建一个瘦数据访问对象,该对象允许在数据库中获取列名,而无需在所有地方进行硬编码。
下面是以 db 列名作为标签的结构。
// Table Structures
type CusipTableRow struct {
Id int64 `db:"id"`
Cusip string `db:"cusip"`
Symbol string `db:"symbol"`
Active int8 `db:"active"`
Added_Time int32 `db:"added_timestamp"`
Description string `db:"description"`
Exchange string `db:"exchange"`
AssetType string `db:"asset_type"`
}
我正在寻求一个建议,而不是下载另一个关于如何使用反射来本质上进行这样的调用以返回带有标签值的字符串的库。
var row CusipTableRow
row.GetColumnName(row.Id) //Return column name based on tag.
我正在考虑可能尝试使用 map[address] fieldTag,但可能由于没有完全掌握 unsafe 包而没有运气让它工作。如果这种方法可行,我想这样的电话可能会奏效:
row.GetColumnName(&row.Id) //Return column name based on tag.