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

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");
}
}
- 2 回答
- 0 關注
- 141 瀏覽
添加回答
舉報