如何在双链表中获取元素值的指针(go-lang)

时间:2016-01-21 04:13:06

标签: pointers go

我想在双链表中修改元素的值,但我不知道如何获取它的指针,因为元素的值是由go定义的nil接口。郎本身。 据我所知,我必须在获取元素值之前做一个类型断言:

val, ok := ele.Value.(TYPE)
if ok {
    // do something...
}

但如果我只是修改val,那将毫无用处。 那有什么提示吗?

感谢。

1 个答案:

答案 0 :(得分:1)

有两个很直接的选择。他们都会涉及类型断言,因为你正在使用interface{}

您可以将其存储为指针并输入assert:

var q interface{}
var i int
q = &i
*(q.(*int)) = 5

您可以简单地重新分配它:

var q interface{}
q = 5
b := q.(int)
q = 2*b

我个人认为重新分配它是最有意义的。如果您在函数中执行此操作,则可能需要返回新值。我确信还有其他方法可以改变它,但我认为简单是最好的。

当然,在实际工作中,一些检查会很好。