Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Mengakses Medan Terbenam dalam Go Structs?

Bagaimanakah Saya Mengakses Medan Terbenam dalam Go Structs?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 13:38:29837semak imbas

How Do I Access Embedded Fields in Go Structs?

Mengakses Medan Terbenam Jenis Struktur

Dalam Go, jenis struct boleh mengandungi medan terbenam, yang membenarkan untuk membenamkan satu atau lebih jenis dalam struct. Ciri berkuasa ini membolehkan penggunaan semula kod dan pengurusan memori yang cekap. Walau bagaimanapun, memahami cara untuk mengakses medan ini boleh menjadi mencabar semasa mempelajari tentang penunjuk.

Pertimbangkan takrifan struktur berikut:

<code class="go">type Engine struct {
    power int
}

type Tires struct {
    number int
}

type Cars struct {
    *Engine // Embedded field with pointer
    Tires   // Embedded field without pointer
}</code>

Seperti yang anda perhatikan, dalam struktur Kereta, satu tertanam penunjuk jenis *Enjin ditakrifkan. Ini membenarkan akses kepada kaedah dan medan jenis Enjin melalui struktur Kereta.

Untuk mengakses medan kuasa medan terbenam Enjin, anda mesti memulakan kedua-dua struktur Enjin dan Kereta terlebih dahulu. Dalam fungsi utama:

<code class="go">func main() {
    car := new(Cars) // Initialize Cars struct
    car.Engine = new(Engine) // Initialize Engine struct explicitly
    car.power = 342 // Set power field
    car.number = 4 // Set number field
}</code>

Dengan memulakan secara eksplisit kedua-dua struktur, anda mewujudkan sambungan antara *Penunjuk Enjin terbenam dan objek Enjin sebenar. Kini, anda boleh mengakses medan kuasa melalui struct Kereta:

<code class="go">fmt.Println(car.power) // Prints 342</code>

Begitu juga, untuk medan tertanam bukan penuding Tayar, anda boleh terus mengakses medan nombornya:

<code class="go">fmt.Println(car.number) // Prints 4</code>

Contoh ini menunjukkan cara untuk memulakan dan mengakses medan terbenam dengan betul dalam struktur, membolehkan anda menggunakan sepenuhnya penggunaan semula kod dan pengurusan memori yang cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Mengakses Medan Terbenam dalam Go Structs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn