第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 golang 將“enum”編組/解組到 DynamoDB

使用 golang 將“enum”編組/解組到 DynamoDB

Go
Cats萌萌 2023-07-04 09:54:35
我在 go 中有以下PartnerType“enum”結(jié)構(gòu):// PartnerType enumtype PartnerType intconst (    // PartnerTypeUnknown should never happen    PartnerTypeUnknown PartnerType = iota    // PartnerTypeTest test    PartnerTypeTest)func (t PartnerType) String() string {    names := [...]string{        "UNKNOWN",        "TEST"}    if t < PartnerTypeUnknown || t > PartnerTypeTest {        return names[0]    }    return names[t]}// MarshalJSON for enumfunc (t PartnerType) MarshalJSON() ([]byte, error) {    s := t.String()    return json.Marshal(s)}// UnmarshalJSON for enumfunc (t *PartnerType) UnmarshalJSON(b []byte) error {    *t = PartnerTypeUnknown    return nil}// MarshalText implements the text marshaller methodfunc (t *PartnerType) MarshalText() ([]byte, error) {    return []byte(t.String()), nil}// UnmarshalText implements the text unmarshaller methodfunc (t *PartnerType) UnmarshalText(text []byte) error {    *t = PartnerTypeUnknown    return nil}// Partner entitytype Partner struct {    ID   string `dynamodbav:"PK,omitempty"`    Foo string `dynamodbav:"SK,omitempty"`    PartnerType              PartnerType    `dynamodbav:",omitempty,string"`}在執(zhí)行 a 時(shí),dynamodbattribute.MarshalMap()我希望PartnerType將 my 存儲(chǔ)為字符串。dynamodbav結(jié)構(gòu)標(biāo)記允許您將 int 存儲(chǔ)為字符串 ( ) ,dynamodbav:",omitempty,string"但它不會(huì)調(diào)用我定義的.String()或Marshal/Unmarshal實(shí)現(xiàn)。換句話說(shuō),它存儲(chǔ)PartnerTypeTest為"1"not "TEST"。如何才能做到這一點(diǎn)?
查看完整描述

1 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

對(duì)于 dynamodb,您可以為枚舉實(shí)現(xiàn)編組器/解組器


請(qǐng)嘗試以下操作:


// MarshalDynamoDBAttributeValue for ddb

func (t PartnerType) MarshalDynamoDBAttributeValue(av *dynamodb.AttributeValue) error {

    s := t.String()

    av.S = &s

    return nil

}


// UnmarshalDynamoDBAttributeValue implements the Unmarshaler interface

func (t *PartnerType) UnmarshalDynamoDBAttributeValue(av *dynamodb.AttributeValue) error {

    // val := aws.StringValue(av.S)


    *t = PartnerTypeUnknown

    return nil

}


查看完整回答
反對(duì) 回復(fù) 2023-07-04
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)