Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mungkin ia beg dalam golang (tali jenis dan tali tidak sepadan)

Mungkin ia beg dalam golang (tali jenis dan tali tidak sepadan)

WBOY
WBOYke hadapan
2024-02-09 08:06:18353semak imbas

也许是 golang 中的 bag(类型字符串和字符串不匹配)

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.

Kandungan soalan

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.

Penyelesaian

Tandatangan kaedah anda hendaklah func (mapsi Mapsi2[T]) SetValue(key string, value T).

Tidak berkaitan dengan isu kompilasi anda, tetapi sila ambil perhatian:

  • Anda mungkin mahu menggunakan penerima penunjuk supaya perubahan berterusan melangkaui panggilan kaedah
  • Anda juga mungkin mahu mengendalikan kes di mana kunci tidak ditemui

Lihat di taman permainan: https://www.php.cn/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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam