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

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

如何使用結(jié)構(gòu)數(shù)組實(shí)現(xiàn) google datastore propertyloadsaver

如何使用結(jié)構(gòu)數(shù)組實(shí)現(xiàn) google datastore propertyloadsaver

Go
HUH函數(shù) 2023-07-10 10:45:11
當(dāng)你有一個(gè)結(jié)構(gòu)數(shù)組時(shí),如何為谷歌數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn) Load() 和 Save() ?顯然這是可能的,但是如何呢?Person首先,當(dāng)您允許數(shù)據(jù)存儲(chǔ)本身將 a與對(duì)象列表序列化時(shí)Phone,您可以使用反射來查看它在內(nèi)部創(chuàng)建一個(gè)*datastore.Entity對(duì)象列表:package mainimport (    "fmt"    "reflect"    "cloud.google.com/go/datastore")type Phone struct {    Type   string    Number string}type Person struct {    Name  string    Phone []Phone}func main() {    person := Person{Name: "Bob", Phone: []Phone{Phone{"a", "b"}, Phone{"c", "d"}}}    // save here    }}這是我到目前為止的工作,這保存了名稱字段,但會(huì)導(dǎo)致對(duì)象出現(xiàn)錯(cuò)誤*datastore.Entity。這是我的嘗試:func (p *Person) Save() ([]datastore.Property, error) {    props := []datastore.Property{        {            Name:  "Name",            Value: p.Name,        },    }    var n []*datastore.Entity    for _, x := range p.Phone {        i1 := datastore.Property{Name: "Type", Value: x.Type}        i2 := datastore.Property{Name: "Number", Value: x.Number}        e := &datastore.Entity{Properties: []datastore.Property{i1, i2}}        n = append(n, e)    }    props = append(props, datastore.Property{Name:"Phone",Value:n})    return props, nil}數(shù)據(jù)存儲(chǔ)區(qū)本身抱怨以下錯(cuò)誤:invalid Value type []*datastore.Entity for a Property with Name "Phone"我想知道是否有人可以闡明我哪里出錯(cuò)了?如何以與數(shù)據(jù)存儲(chǔ)本身相同的方式將結(jié)構(gòu)數(shù)組保存在數(shù)據(jù)存儲(chǔ)中?上面的示例代碼位于 go Playground 上:https ://play.golang.org/p/AP1oFnlo1jm
查看完整描述

1 回答

?
犯罪嫌疑人X

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

經(jīng)過一定量的實(shí)驗(yàn)后,發(fā)現(xiàn)這里是如何Save()為具有結(jié)構(gòu)的對(duì)象實(shí)現(xiàn)方法。datastore.Property 必須存儲(chǔ)持有數(shù)組[]interface{}而[]*datastore.Entity不是純數(shù)組[]*datastore.Entity:


func (p *Person) Save() ([]datastore.Property, error) {

    props := []datastore.Property{

        {

            Name:  "Name",

            Value: p.Name,

        },

    }


    var n []interface{}

    for _, x := range p.Phone {

        i1 := datastore.Property{Name: "Type", Value: x.Type}

        i2 := datastore.Property{Name: "Number", Value: x.Number}

        e := &datastore.Entity{Properties: []datastore.Property{i1, i2}}

        n = append(n, e)

    }

    props = append(props, datastore.Property{Name:"Phone",Value:n})


    return props, nil

}


查看完整回答
反對(duì) 回復(fù) 2023-07-10
  • 1 回答
  • 0 關(guān)注
  • 129 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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