Google App Engine Datastore menyediakan penyelesaian storan data yang berkuasa untuk aplikasi web, menawarkan fleksibiliti dan kebolehskalaan. Kadangkala, terdapat keperluan untuk menyimpan data dengan sifat dinamik, bermakna sifat yang tidak diisytiharkan lebih awal daripada masa. Ini boleh dicapai dalam Go dengan memanfaatkan antara muka PropertyLoadSaver Google App Engine.
Antara muka PropertyLoadSaver membolehkan anda menentukan cara sifat entiti harus dimuatkan dan disimpan ke stor data. Dengan melaksanakan antara muka ini, anda mendapat kawalan ke atas pengendalian harta dinamik.
Platform Enjin Aplikasi Go menyediakan jenis Senarai Hartanah yang melaksanakan antara muka PropertyLoadSaver. PropertyList pada asasnya ialah sepotong sifat, membolehkan anda menambah dan mengalih keluar sifat secara dinamik.
Untuk mencipta entiti dengan sifat dinamik menggunakan PropertyList, ikut langkah berikut:
import "google.golang.org/appengine/datastore" // Create a PropertyList to hold the dynamic properties. props := datastore.PropertyList{ datastore.Property{Name: "time", Value: time.Now()}, datastore.Property{Name: "email", Value: "[email protected]"}, } // Create an incomplete key for the new entity. k := datastore.NewIncompleteKey(ctx, "DynEntity", nil) // Save the entity using the PropertyList. key, err := datastore.Put(ctx, k, &props)
Coretan kod ini mencipta entiti dengan jenis "DynEntity" dan dua sifat dinamik: "masa" dan "e-mel." PropertyList disimpan sebagai nilai untuk entiti.
Anda juga boleh melaksanakan PropertyLoadSaver anda sendiri jika diperlukan. Berikut ialah contoh menggunakan jenis tersuai yang dipanggil "DynEnt":
import "google.golang.org/appengine/datastore" 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) error { for k, v := range *d { props = append(props, datastore.Property{Name: k, Value: v}) } return err }
Jenis DynEnt ini kemudiannya boleh digunakan untuk menyimpan entiti dengan sifat dinamik, seperti ditunjukkan di bawah:
import "google.golang.org/appengine/datastore" // Create a DynEnt with dynamic properties. d := DynEnt{"email": "[email protected]", "time": time.Now()} // Create an incomplete key for the new entity. k := datastore.NewIncompleteKey(ctx, "DynEntity", nil) // Save the entity using the DynEnt. key, err := datastore.Put(ctx, k, &d)
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Sifat Dinamik dalam Google App Engine Datastore menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!