Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Medan Tanpa Nama dalam Go Structs Mempromosikan Medan dan Membenamkan Jenis Kompaun?

Bagaimanakah Medan Tanpa Nama dalam Go Structs Mempromosikan Medan dan Membenamkan Jenis Kompaun?

Barbara Streisand
Lepaskan: 2024-11-15 11:23:02
asal
1084 orang telah melayarinya

How do Nameless Fields in Go Structs Promote Fields and Embed Compound Types?

Memahami Medan Tanpa Nama dalam Struktur Go

Medan tanpa nama (atau tanpa nama) dalam struct Go mempunyai dua tujuan:

1. Mempromosikan Medan:

Medan tanpa nama pertama dalam struct menjadi medan "dinaikkan pangkat". Ini bermakna anda boleh mengakses sifatnya terus daripada struct induk tanpa menyatakan nama medan.

2. Benamkan Jenis Kompaun:

Medan tanpa nama membenarkan anda membenamkan keseluruhan struktur dalam struktur lain, membolehkan anda memanfaatkan kefungsian jenis terbenam.

Untuk menggambarkan konsep ini, pertimbangkan perkara berikut coretan kod:

package main

import (
    "fmt"
)

type Base struct {
    Name string
}

type Embedded struct {
    Address string
}

type Person struct {
    Base
    Embedded
}

func main() {
    person := Person{
        Base: Base{Name: "Alice"},
        Embedded: Embedded{Address: "123 Main Street"},
    }

    fmt.Printf("Name: %s, Address: %s\n", person.Name, person.Address)
}
Salin selepas log masuk

Dalam contoh ini:

  • Struktur Pangkalan mempunyai Nama medan bernama.
  • Struktur Terbenam mempunyai Alamat medan bernama.
  • Ini secara berkesan membolehkan kami mencipta jenis baharu (Orang) yang mewarisi sifat daripada struct Base dan Embedded, memberikan kemudahan dan cara yang bersih untuk mengarang struktur data yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Medan Tanpa Nama dalam Go Structs Mempromosikan Medan dan Membenamkan Jenis Kompaun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan