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.
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.
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)
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!