Dalam Go, enum biasanya dilaksanakan sebagai nilai integer yang diberikan pemalar. Walau bagaimanapun, mengakses nama enum tanpa mencipta kaedah String() secara eksplisit boleh menyusahkan.
Pertimbangkan contoh ini:
const ( MERCURY = 1 VENUS = iota EARTH MARS JUPITER SATURN URANUS NEPTUNE PLUTO )
Untuk mendapatkan nama enum, seseorang mungkin mentakrifkan String() kaedah untuk setiap nilai enum, yang membawa kepada penaip semula berulang atau penjanaan kod. Adakah terdapat alternatif?
Menggunakan Alat Stringer
Go menyediakan alat rentetan, yang mengautomasikan penciptaan kaedah String() untuk pemalar. Dengan melaksanakan arahan berikut dalam direktori yang sama seperti kod di atas:
stringer -type=MERCURY
fail baharu mercury_string.go dijana dalam konteks pakej, mengandungi:
func (MERCURY) String() string
Kaedah ini membenarkan mendapatkan semula nama enum dengan mudah dan mengurangkan keperluan untuk penukaran rentetan eksplisit.
Tambahan Nota:
Walaupun teknik ini menyelesaikan isu mendapatkan nama enum tanpa kaedah String() yang jelas, perlu diingat bahawa teknik ini memerlukan penggunaan alat luaran dan mungkin tidak selalu boleh dilaksanakan dalam senario tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Go Enum Tanpa Menulis Penukaran Rentetan Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!