gpt4 book ai didi

go - 如何从 Go 中的结构 slice 中删除结构?

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:34 26 4
gpt4 key购买 nike

如何从用户定义结构的用户定义 slice 中删除用户定义结构?

像这样:

type someStruct struct {
someOtherStruct *typeOfOtherStruct
someInt int
someString string
}

var someStructs []someStruct

func someFunc(ss someStruct, ssSlice someStructs) {
// .. want to remove ss from ssSlice
}

我可能应该循环直到找到索引,然后将其删除。但是我该如何比较这些结构呢?

最佳答案

您找到该元素并创建一个减去该索引的新 slice 。

关于 Playground 的示例

package main

import "fmt"

type someStruct struct {
someInt int
someString string
}

func removeIt(ss someStruct, ssSlice []someStruct) []someStruct {
for idx, v := range ssSlice {
if v == ss {
return append(ssSlice[0:idx], ssSlice[idx+1:]...)
}
}
return ssSlice
}
func main() {
someStructs := []someStruct{
{1, "one"},
{2, "two"},
{3, "three"},
}
fmt.Println("Before:", someStructs)
someStructs = removeIt(someStruct{2, "two"}, someStructs)
fmt.Println("After:", someStructs)
}

关于go - 如何从 Go 中的结构 slice 中删除结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com