Menyimpan Kedua-dua Nilai Rentetan dan Int dalam Struktur Go
Dalam Go, tidak mungkin untuk menyimpan kedua-dua nilai rentetan dan int secara langsung dalam medan struct tunggal. Ini disebabkan oleh sistem jenis bahasa yang kuat, yang memerlukan pembolehubah mempunyai jenis yang khusus dan jelas.
Penyelesaian Kemungkinan
Untuk mengatasi had ini, anda perlu beberapa pilihan:
Pelaksanaan Antara Muka dalam Go 1.18 dan Beyond
Menggunakan antara muka, anda boleh mencipta jenis yang boleh memegang kedua-dua nilai rentetan dan int. Berikut ialah contoh:
type Input interface { IsValid() bool Value() interface{} } type TestCaseBool struct { input bool isValid bool } func (tc TestCaseBool) IsValid() bool { return tc.isValid } func (tc TestCaseBool) Value() interface{} { return tc.input }
Anda kini boleh menggunakan struct TestCaseBool untuk menyimpan sama ada nilai boolean atau antara muka kosong.
Nota: Penyelesaian ini memerlukan Go 1.18 atau lebih tinggi untuk bekerja.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menyimpan Kedua-dua Nilai Rentetan dan Int dalam Struktur Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!