gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:10 24 4
gpt4 key购买 nike

我想修改一个双链表中元素的值,但是不知道如何获取它的指针,因为元素的值是go-lang自己定义的一个nil接口(interface)。据我所知,我必须在获取元素的值之前进行类型断言,例如:

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

但如果我只是修改val,它就没有用了。那么有什么提示吗?

谢谢。

最佳答案

有两个非常简单的选项。它们都将涉及类型断言,因为您正在使用 interface{}

您可以将其存储为指针并键入断言:

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

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

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

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

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

关于pointers - 如何在双链表中获取元素值的指针(go-lang),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34915290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com