Golang:如何在接口切片

时间:2016-06-10 14:50:32

标签: go struct interface slice

游乐场中的问题:https://play.golang.org/p/UKB8f4qGsM

我有一片界面,我知道他们有哪种类型(实际上我不会这样,所以我必须打开它,但为了清晰起见,我把它留了下来)。如何为接口后面的struct中的字段赋值?类型断言似乎剥夺了参考。

我也尝试使用指针,虽然它也不起作用,主要是因为我无法键入断言然后(类型* inter不能被断言),当我取消引用它时,它有点让它变得毫无意义甚至有......

我没有经验丰富的Go,我会感激我能得到的每一个帮助。

1 个答案:

答案 0 :(得分:1)

您无法更改存储在界面中的值,您需要使用指向要更改的值的指针:

for i := 0; i < 5; i++ {
    slice = append(slice, &b{a: a{name: "Tom"}})
}

for i, _ := range slice {
    x := slice[i].(*b)
    x.name = "Tim"
}