Rumah >pembangunan bahagian belakang >Golang >Berfungsi sebagai Medan Struct vs. Kaedah Struct: Bila hendak menggunakan Which in Go?
Fungsi sebagai Medan Struktur vs. Kaedah Struktur
Dalam Go, fungsi boleh dibenamkan sebagai medan dalam struct atau ditakrifkan sebagai kaedah bagi struct tersebut . Memahami perbezaan antara pendekatan ini boleh mengoptimumkan reka bentuk kod anda.
Medan Jenis Fungsi
Medan jenis fungsi bukanlah kaedah benar yang dilampirkan pada jenis struct. Mereka menyimpan rujukan kepada fungsi dan bukannya menjadi sebahagian daripada set kaedah struct.
Kaedah Benar
Kaedah benar, diisytiharkan dengan jenis struct sebagai penerima, adalah integral kepada set kaedah struct. Mereka membenarkan untuk melaksanakan antara muka dan beroperasi pada jenis konkrit. Setelah ditakrifkan, kaedah tidak boleh ditukar pada masa jalan.
Bila Menggunakan Medan Jenis Fungsi
Bila Menggunakan Kaedah Benar
Contoh
<code class="go">type Foo struct { Bar func() } func main() { f := Foo{ Bar: func() { fmt.Println("initial") }, } f.Bar() f.Bar = func() { fmt.Println("changed") } f.Bar() }</code>
Output:
initial changed
Dalam contoh ini, fungsi dibenamkan sebagai medan dalam struct Foo. Dengan menetapkan semula medan pada masa jalanan, kami boleh menukar gelagat kaedah Bar, menunjukkan fleksibiliti medan jenis fungsi.
Atas ialah kandungan terperinci Berfungsi sebagai Medan Struct vs. Kaedah Struct: Bila hendak menggunakan Which in Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!