首頁 > 後端開發 > Golang > 也許是 golang 中的 bag(類型字串和字串不符)

也許是 golang 中的 bag(類型字串和字串不符)

WBOY
發布: 2024-02-09 08:06:18
轉載
420 人瀏覽過

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

php小編新一為您介紹golang中的bag型別。在golang中,bag類型指的是一種資料結構,用於儲存元素的集合。與其他資料結構不同的是,bag中的元素可以重複出現,且順序無關緊要。這意味著,bag類型在處理不需要順序的情況下非常有用,例如計算元素的頻率或判斷元素是否存在。需要注意的是,bag類型與字串類型在golang中並不匹配,因此在使用過程中需要注意類型轉換的問題。

問題內容

不要問我為什麼要這樣做,只要告訴我這是怎麼可能的:

gopls 錯誤:字串和字串類型不符合

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
        }
    }
}
登入後複製

一開始我以為lsp伺服器很蠢,但事實證明並非如此。

出現錯誤:字串和字串型別不符合

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
登入後複製

我用谷歌搜索,在搜索結果中,只有將指針與字符串進行比較時出現錯誤...就在那裡,類型一切正常,或者我錯了。

解決方法

您的方法簽章應為 func (mapsi Mapsi2[T]) SetValue(key string, value T)

與您的編譯問題無關,但請注意:

  • 您可能想要使用指標接收器,以便變更在方法呼叫之外持續存在
  • 您可能還想處理找不到金鑰的情況

在操場上查看://m.sbmmt.com/link/6934456f54af5ab56c6f347c6427afeb一个>.

以上是也許是 golang 中的 bag(類型字串和字串不符)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
lsp
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板