1 回答

TA貢獻2012條經驗 獲得超12個贊
我不完全理解你的問題,但你正在做的事情可以很容易地縮短而不影響功能:
reflectItem := reflect.ValueOf(dataStruct)
subItem := reflectItem.FieldByName(subItemKey)
switch subItemVal := subItem.(type) {
case string:
searchData = bson.D{{"data." +
strings.ToLower(subItemKey), subItemVal}}
case int64:
searchData = bson.D{{"data." +
strings.ToLower(subItemKey), subItemVal}}
}
但除此之外,我認為在您的情況下根本不需要類型斷言。這也應該有效:
reflectItem := reflect.ValueOf(dataStruct)
subItem := reflectItem.FieldByName(subItemKey)
searchData = bson.D{{"data."+strings.ToLower(subItemKey), subItem.Interface())
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報