猿问

如何从 Go 中的结构切片中删除结构?

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


像这样的东西:


type someStruct struct {

    someOtherStruct *typeOfOtherStruct

    someInt         int

    someString      string

}


var someStructs []someStruct


func someFunc(ss someStruct, ssSlice someStructs) {

    // ..  want to remove ss from ssSlice

}

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


手掌心
浏览 253回答 1
1回答

吃鸡游戏

您找到该元素并制作一个减去该索引的新切片。package mainimport "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)}
随时随地看视频慕课网APP

相关分类

Go
我要回答