Mencipta Struktur Kekal dalam Go
Struktur tidak berubah, setelah dimulakan, hanya membenarkan operasi baca pada medannya tanpa kemungkinan pengubahsuaian. Mencapai ini dalam Go memerlukan pendekatan yang sedikit berbeza berbanding dalam beberapa bahasa lain.
Penyelesaian
Untuk mencipta struct tidak berubah dalam Go:
Kod Contoh
package mypackage type ImmutableStruct struct { value int } func (s ImmutableStruct) Value() int { return s.value } func NewImmutableStruct(value int) ImmutableStruct { return ImmutableStruct{value: value} }
Penggunaan
myImmutableStruct := mypackage.NewImmutableStruct(3) fmt.Println(myImmutableStruct.Value()) // Prints 3
Dalam contoh ini, ImmutableStruct mempunyai medan yang tidak dieksport dan fungsi pembaca (Nilai()) untuk mengakses medan nilai. Setelah dimulakan, ia tidak boleh diubah suai dari luar pakej mypackage.
Teknik ini memastikan kebolehubahan sambil mengekalkan fleksibiliti struct dan modulariti pakej Go.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Struktur Tidak Berubah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!