Rumah >pembangunan bahagian belakang >Golang >Mengapakah `yaml.Unmarshal()` Mengembalikan Struct Kosong dalam Go?

Mengapakah `yaml.Unmarshal()` Mengembalikan Struct Kosong dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-07 16:46:13793semak imbas

Why Does `yaml.Unmarshal()` Return an Empty Struct in Go?

Menyahmarshaling YAML ke dalam Go Struct

Dalam Go, fungsi yaml.Unmarshal() digunakan untuk menghuraikan data YAML ke dalam perwakilan berstruktur, seperti struct. Walau bagaimanapun, apabila cuba menghuraikan data YAML ke dalam struct, struct kosong dikembalikan atas sebab yang tidak diketahui.

Penyelesaian terletak pada keterlihatan medan struct. Secara lalai, medan struct tidak dieksport, bermakna ia hanya boleh diakses dalam pakej di mana struct ditakrifkan. Untuk menyahmarshal data YAML ke dalam struct, medan mesti dieksport.

Untuk mengeksport medan dalam struct Go, gunakan huruf pertama nama medan. Contohnya, bukannya:

type Config struct {
    foo_bar string
}

Gunakan:

type Config struct {
    FooBar string
}

Ini menjadikan medan FooBar dieksport dan membolehkannya diakses dari luar pakej. Selepas membuat perubahan ini, yaml.Unmarshal() boleh berjaya menghuraikan data YAML ke dalam struct.

Atas ialah kandungan terperinci Mengapakah `yaml.Unmarshal()` Mengembalikan Struct Kosong dalam Go?. 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