Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengakses Semua Jenis yang Dieksport daripada Pakej Go Tertentu?

Bagaimanakah Saya Boleh Mengakses Semua Jenis yang Dieksport daripada Pakej Go Tertentu?

Mary-Kate Olsen
Lepaskan: 2024-12-13 11:18:15
asal
485 orang telah melayarinya

How Can I Access All Exported Types from a Specific Go Package?

Mengakses Jenis Eksport Merentas Pakej

Dalam Go, jenis yang dieksport boleh diakses oleh pakej lain. Ini membolehkan penggunaan semula dan modulariti dalam reka bentuk kod. Walau bagaimanapun, bagaimana anda boleh mengakses semua jenis eksport yang ditentukan daripada pakej tertentu?

Pertimbangkan contoh berikut:

package demo

type People struct {
    Name string
    Age  uint
}

type UserInfo struct {
    Address  string
    Hobby    []string
    NickNage string
}
Salin selepas log masuk

Dalam pakej yang berasingan, katakan,

import "demo"
Salin selepas log masuk

Daripada pakej lain ini, kami berusaha untuk mendapatkan semula semua jenis yang dieksport yang ditakrifkan dalam pakej demo. Untuk mencapai matlamat ini, kami boleh memanfaatkan pakej go/importer:

package main

import (
    "fmt"

    "golang.org/x/tools/go/importer"
)

func main() {
    pkg, err := importer.Default().Import("demo")
    if err != nil {
        fmt.Println("error:", err)
        return
    }
    for _, declName := range pkg.Scope().Names() {
        fmt.Println(declName)
    }
}
Salin selepas log masuk

Kod ini mengimport pakej demo menggunakan pengimport dan beralih ke atas nama yang ditentukan dalam skopnya. Output yang terhasil akan menyenaraikan semua jenis yang dieksport, dalam kes ini:

People
UserInfo
Salin selepas log masuk

Walau bagaimanapun, perlu diingat bahawa menggunakan pendekatan ini boleh mengakibatkan ralat pada Go Playground.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Semua Jenis yang Dieksport daripada Pakej Go Tertentu?. 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