背景
我正在尝试将返回的项目解组dynamodb.GetItem到对象中,但我在那个地方不知道哪种类型。为此,我有一个函数emptyItemConstructor返回所需类型的新对象。
问题
我有一个这样的函数:
func GetItem(emptyItemConstructor func() interface{}) interface{} {
myItem := emptyItemConstructor()
fmt.Printf("Type is: %T\n", myItem)
_ = dynamodbattribute.UnmarshalMap(item, &myItem)
fmt.Printf("Type now is: %T\n", myItem)
}
我将这个函数传递给emptyItemConstructor:
func constructor() MyDynamoDBItemType {
return MyDynamoDBItemType{}
}
该函数的输出是:
Type is: MyDynamoDBItemType
Type now is: map[string]interface
为什么 UnmarshalMap 改变 myItem 的类型?
炎炎设计
jeck猫
相关分类