在 Go 中如何从结构的切片中删除一个项目

In Go How to delete an item from slice of an Struct

我的结构包含另一个结构的一部分。我已经添加了从切片中添加和删除项目的方法,但是添加是有效的,删除不是。我是 Go 的新手,所以我无法理解为什么切片重新分配没有反映在 struct

下面是我的代码的简短版本。 Link 到 PlayGoLang : http://play.golang.org/p/4NnGh3Dtzw

 type BatteryTest struct {
    Name, LocalConf, JdkPath, SysProps, LocalconfPath string
    NumberOfNodes                                     int
    }

    type Server struct {
    Port                                    int
    TestQueue, CompletedTests, RunningTests []BatteryTest
}

    func (this *Server) AddBatteryTest(test BatteryTest) error {    
        this.TestQueue = append(this.TestQueue, test)
        return nil
    }

func (this *Server) TakeBatteryTest() error {
    length := len(this.TestQueue)
    if length == 0 {
        fmt.Println("Len==", 0)
        return errors.New("Queue is empty")
    }

    slice := this.TestQueue
    i := len(this.TestQueue) - 1
    slice = append(slice[:i], slice[i+1:]...)
    return nil
}

您没有将 slice 分配回 this.TestQueue