作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想修改一个双链表中元素的值,但是不知道如何获取它的指针,因为元素的值是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/
我是一名优秀的程序员,十分优秀!