Menggunakan Struktur Tidak Boleh Ubah dalam Go
Dalam Go, anda mungkin menghadapi keperluan untuk struktur tidak berubah, yang menghalang pengubahsuaian medannya selepas permulaan . Ini boleh meningkatkan integriti dan keselamatan data dalam senario tertentu.
Untuk mencapai kebolehubahan bagi struktur dalam Go, anda boleh menggunakan teknik yang melibatkan menjadikan ahlinya tidak dieksport dan menyediakan fungsi baca sahaja untuk mengakses nilai mereka. Begini cara anda boleh melaksanakan ini:
package mypackage type myImmutable struct { value int } func (s myImmutable) Value() int { return s.value }
Dalam contoh ini, struct myImmutable mempunyai nilai medan yang tidak dieksport. Untuk mengakses nilai medan di luar pakej, kami menyediakan fungsi getter Value().
Pemulaan struct boleh dilakukan menggunakan fungsi pembina, yang mencipta contoh baharu dan menetapkan nilai:
func NewMyImmutable(value int) myImmutable { return myImmutable{value: value} }
Penggunaan struct tidak berubah anda akan kelihatan seperti ini:
myImmutable := mypackage.NewMyImmutable(3) fmt.Println(myImmutable.Value()) // Prints 3
Dengan menggunakan getter untuk mengakses medan struct, sebarang percubaan untuk mengubah suainya di luar pakej akan mengakibatkan ralat pengkompil. Pendekatan ini berkesan menjadikan struct tidak boleh ubah.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mencipta Struktur Tidak Berubah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!