游乐场中的问题:https://play.golang.org/p/UKB8f4qGsM
我有一片界面,我知道他们有哪种类型(实际上我不会这样,所以我必须打开它,但为了清晰起见,我把它留了下来)。如何为接口后面的struct中的字段赋值?类型断言似乎剥夺了参考。
我也尝试使用指针,虽然它也不起作用,主要是因为我无法键入断言然后(类型* inter不能被断言),当我取消引用它时,它有点让它变得毫无意义甚至有......
我没有经验丰富的Go,我会感激我能得到的每一个帮助。
答案 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"
}