Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mendapatkan Nama Go Enum Tanpa Menentukan Kaedah String() Secara Manual?

Bagaimanakah Saya Boleh Mendapatkan Nama Go Enum Tanpa Menentukan Kaedah String() Secara Manual?

DDD
DDDasal
2024-11-28 14:41:11264semak imbas

How Can I Get Go Enum Names Without Manually Defining a String() Method?

Mendapatkan Nama Enum Tanpa String() Kaedah dalam Go

Dalam Go, enum biasanya diwakili menggunakan nilai malar. Untuk mendapatkan semula nama nilai enum, anda memerlukan kaedah String() yang ditakrifkan untuk jenis enum. Walau bagaimanapun, adalah wajar untuk mengelak daripada mencipta kaedah String() secara manual.

Kaedah Alternatif Menggunakan Alat Stringer

Alat stringer standard daripada pakej std boleh menjana kaedah String() secara automatik untuk anda jenis enum. Pertimbangkan definisi enum berikut:

const (
    MERCURY = 1
    VENUS = iota
    EARTH
    MARS
    JUPITER
    SATURN
    URANUS
    NEPTUNE
    PLUTO
)

Menjalankan stringer -type=TheEnum dalam direktori yang mengandungi kod anda akan menjana fail theenum_string.go, mentakrifkan kaedah String() untuk jenis TheEnum.

Faedah Menggunakan Stringer

Menggunakan alat stringer menyediakan perkara berikut faedah:

  • Kaedah String() Automatik: Ia menjana kaedah String() untuk anda, mengurangkan usaha manual.
  • Ketekalan: Ia memastikan perwakilan rentetan yang konsisten untuk nilai enum.
  • Go Generate Keserasian: Alat rentetan berfungsi dengan baik dengan arahan go generate, membolehkan anda menyepadukan penjanaan enum ke dalam proses binaan anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Go Enum Tanpa Menentukan Kaedah String() Secara Manual?. 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