亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從地圖內部的切片中刪除元素?

如何從地圖內部的切片中刪除元素?

Go
至尊寶的傳說 2022-11-23 20:09:00
我有一個地圖,其中有一個鍵和該鍵的多個值。我想要做的是從值中刪除單個值。例子:map1 := make(map[string][]string)str1 := []string{"Jon", "Doe", "Captain", "America"}str2 := "Doe"map1["p1"] = str1在上面的示例中,如果它存在于 str2 中,我想從“p1”中刪除值,在我的例子中它是“Doe”刪除值映射后應該是這樣的 p1:[Jon Captain America]這是可能的還是我必須再次重寫整個地圖?
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

不可能從地圖內部的切片中“就地”刪除元素。您需要先從地圖中獲取切片,從切片中刪除元素,然后將結果存儲在地圖中。


要通過元素的值查找元素的索引,然后將其從切片中刪除,golang.org/x/exp/slices如果您使用的是 Go1.18,則可以使用該包。


package main


import (

    "fmt"


    "golang.org/x/exp/slices"

)


func main() {

    map1 := make(map[string][]string)

    str1 := []string{"Jon", "Doe", "Captain", "America"}

    str2 := "Doe"

    map1["p1"] = str1


    idx := slices.Index(map1["p1"], str2)

    map1["p1"] = slices.Delete(map1["p1"], idx, idx+1)


    fmt.Println(map1)

}

https://go.dev/play/p/EDTGAJT-VdM


查看完整回答
反對 回復 2022-11-23
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

package main


func main () {

    var sessions = map[string] chan int{};

    delete(sessions, "moo");

}

或者


package main


func main () {

    var sessions = map[string] chan int{};

    sessions["moo"] = make (chan int);

    _, ok := sessions["moo"];

    if ok {

        delete(sessions, "moo");

    }

}


查看完整回答
反對 回復 2022-11-23
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號