Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengakses Nilai Tag Medan Struktur Menggunakan Pakej Refleksi Go?

Bagaimana untuk Mengakses Nilai Tag Medan Struktur Menggunakan Pakej Refleksi Go?

Barbara Streisand
Lepaskan: 2024-12-11 17:35:16
asal
937 orang telah melayarinya

How to Access Struct Field Tag Values Using Go's Reflection Package?

Mengakses Nilai Tag Medan dengan Pakej Refleksi Go

Soalan:

Bagaimana saya boleh mengakses nilai teg bagi sesuatu medan struct menggunakan pantulan Go pakej?

Jawapan:

Semasa merenung struct, tidak mungkin untuk mendapatkan secara langsung nilai teg medan tertentu dengan memberikan nilainya. Ini kerana pakej pantulan tidak boleh mengaitkan nilai secara automatik dengan struct asal.

Untuk mendapatkan nilai teg, anda perlu mendapatkan reflect.StructField yang dikaitkan dengan medan. Begini cara anda boleh melakukannya:

import "reflect"

type User struct {
    name    string `json:name-field`
    age     int
}

func getStructTag(field reflect.StructField) string {
    return string(field.Tag)
}

// ...

user := &User{"John Doe The Fourth", 20}
field, ok := reflect.TypeOf(user).Elem().FieldByName("name")
if ok {
    tag := getStructTag(field)
    // ...
}
Salin selepas log masuk

Dalam contoh ini, kami memperoleh reflect.StructField (medan) untuk medan "nama" dengan menggunakan FieldByName. Kami kemudian menghantar medan ke fungsi getStructTag untuk mendapatkan semula nilai teg.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Nilai Tag Medan Struktur Menggunakan Pakej Refleksi Go?. 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