![](/img/trans.png)
[英]How do I STORE different structs in a slice or a struct in Go (Not embedding)
[英]How can I remove a struct from a slice of structs in 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
}
我可能应该循环直到找到索引,然后将其删除。 但是我如何比较结构?
您找到该元素并制作一个减去该索引的新切片。
操场上的例子
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)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.