Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mencipta Entiti Dinamik dalam Google App Engine Datastore Go?

Bagaimanakah Saya Boleh Mencipta Entiti Dinamik dalam Google App Engine Datastore Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 15:29:11728semak imbas

How Can I Create Dynamic Entities in Go's Google App Engine Datastore?

Mencapai Sifat Dinamik dalam Google App Engine Datastore Go

Dalam Enjin Apl Python, Model Expando membolehkan penetapan dinamik atribut kepada entiti tanpa pengisytiharan terlebih dahulu. Artikel ini meneroka cara untuk mencapai kefungsian serupa dalam Go menggunakan Google App Engine Datastore.

Antara Muka PropertyLoadSaver

Kunci untuk menentukan entiti dinamik dalam Go ialah antara muka PropertyLoadSaver. Dengan melaksanakan antara muka ini, anda memperoleh keupayaan untuk membina sifat entiti secara dinamik pada menjimatkan masa.

Menggunakan PropertyList daripada Platform Enjin Aplikasi Go

Platform Enjin Aplikasi Go menawarkan jenis Senarai Harta, yang ialah senarai contoh Harta dan melaksanakan antara muka PropertyLoadSaver. Dengan memanfaatkan PropertyList, anda boleh mencipta entiti dinamik tanpa melaksanakan antara muka sendiri.

props := datastore.PropertyList{
    {Name: "time", Value: time.Now()},
    {Name: "email", Value: "johndoe@example.com"},
}

Untuk menyimpan senarai ini sebagai entiti, anda boleh menggunakan:

key, err := datastore.Put(c, k, &props)

Melaksanakan PropertyLoadSaver untuk Jenis Tersuai

Untuk fleksibiliti lanjut, anda boleh melaksanakan antara muka PropertyLoadSaver sendiri jenis tersuai, seperti peta.

type DynEnt map[string]interface{}

func (d *DynEnt) Load(props []datastore.Property) error {
    for _, p := range props {
        (*d)[p.Name] = p.Value
    }
    return nil
}

func (d *DynEnt) Save() (props []datastore.Property, err error) {
    for k, v := range *d {
        props = append(props, datastore.Property{Name: k, Value: v})
    }
    return
}

Dengan pelaksanaan tersuai ini, anda kini boleh memuatkan dan menyimpan entiti dinamik dengan mudah:

d := DynEnt{"email": "johndoe@example.com", "time": time.Now()}
key, err := datastore.Put(c, k, &d)

Pendekatan ini memberi anda kawalan penuh ke atas harta tersebut takrifan entiti dinamik anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Entiti Dinamik dalam Google App Engine Datastore Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn