Editor PHP Xinyi memperkenalkan anda kepada jenis beg dalam golang. Dalam golang, jenis beg merujuk kepada struktur data yang digunakan untuk menyimpan koleksi elemen. Tidak seperti struktur data lain, elemen dalam beg boleh muncul berulang kali dan susunannya tidak penting. Ini bermakna jenis beg sangat berguna dalam situasi di mana pesanan tidak diperlukan, seperti mengira kekerapan unsur atau menentukan sama ada unsur wujud. Perlu diingatkan bahawa jenis beg dan jenis rentetan tidak sepadan dengan golang, jadi anda perlu memberi perhatian kepada isu penukaran jenis semasa penggunaan.
Jangan tanya saya mengapa saya melakukan ini, cuma beritahu saya bagaimana ia boleh dilakukan:
ralat gopls: rentetan dan rentetan jenis tidak sepadan
type mapsi2[t string | int | float32 | float64] struct { keys []string values []t } func (mapsi mapsi2[string]) setvalue(key string, value string) { for i, keymapsi := range mapsi.keys { if key == keymapsi { mapsi.values[i] = value } } }
Mula-mula saya rasa server lsp tu bodoh, tapi ternyata tidak.
Ralat berlaku: rentetan dan rentetan jenis tidak padan
go run ./cmd/app # devllart/foobarman/src/mapsi src/mapsi/mapsi.go:48:13: invalid operation: key == keyMapsi (mismatched types string and string) make: *** [Makefile:6: run] Error 2
Saya google dan dalam hasil carian saya mendapat ralat hanya apabila membandingkan penunjuk dengan rentetan... di sana, jenis semuanya baik-baik saja, atau saya salah.
Tandatangan kaedah anda hendaklah func (mapsi Mapsi2[T]) SetValue(key string, value T)
.
Tidak berkaitan dengan isu kompilasi anda, tetapi sila ambil perhatian:
Lihat di taman permainan: //m.sbmmt.com/link/6934456f54af5ab56c6f347c6427afeb一个>.
Atas ialah kandungan terperinci Mungkin ia beg dalam golang (tali jenis dan tali tidak sepadan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!